PageRenderTime 42ms CodeModel.GetById 12ms app.highlight 24ms RepoModel.GetById 1ms app.codeStats 0ms

/Docs/07-Implementacion/Source/trunk/EDUAR_Regular/EDUAR/EDUAR_UI/Private/Agenda/ManageAgendaActividades.aspx.cs

http://blpm.googlecode.com/
C# | 600 lines | 362 code | 42 blank | 196 comment | 22 complexity | 96c4d11854ca660b35c86c85e34556d0 MD5 | raw file
  1using System;
  2using System.Collections.Generic;
  3using System.Web.UI;
  4using System.Web.UI.WebControls;
  5using EDUAR_BusinessLogic.Common;
  6using EDUAR_Entities;
  7using EDUAR_UI.Shared;
  8using EDUAR_UI.Utilidades;
  9using EDUAR_Utility.Constantes;
 10using EDUAR_Utility.Enumeraciones;
 11
 12namespace EDUAR_UI
 13{
 14	public partial class ManageAgendaActividades : EDUARBasePage
 15	{
 16		#region --[Atributos]--
 17		private BLAgendaActividades objBLAgenda;
 18		#endregion
 19
 20		#region --[Propiedades]--
 21		/// <summary>
 22		/// Mantiene la agenda seleccionada en la grilla.
 23		/// Se utiliza para el manejo de eventos de agenda (evaluación, excursión, reunión).
 24		/// </summary>
 25		/// <value>
 26		/// The prop agenda.
 27		/// </value>
 28		public AgendaActividades propAgenda
 29		{
 30			get
 31			{
 32				if (Session["propAgenda"] == null)
 33					propAgenda = new AgendaActividades();
 34
 35				return (AgendaActividades)Session["propAgenda"];
 36			}
 37			set { Session["propAgenda"] = value; }
 38		}
 39
 40		/// <summary>
 41		/// Gets or sets the prop filtro agenda.
 42		/// </summary>
 43		/// <value>
 44		/// The prop filtro agenda.
 45		/// </value>
 46		public AgendaActividades propFiltroAgenda
 47		{
 48			get
 49			{
 50				if (ViewState["propFiltroAgenda"] == null)
 51					propFiltroAgenda = new AgendaActividades();
 52
 53				return (AgendaActividades)ViewState["propFiltroAgenda"];
 54			}
 55			set { ViewState["propFiltroAgenda"] = value; }
 56		}
 57
 58		/// <summary>
 59		/// Gets or sets the lista agenda.
 60		/// </summary>
 61		/// <value>
 62		/// The lista agenda.
 63		/// </value>
 64		public List<AgendaActividades> listaAgenda
 65		{
 66			get
 67			{
 68				if (ViewState["listaAgenda"] == null)
 69					listaAgenda = new List<AgendaActividades>();
 70
 71				return (List<AgendaActividades>)ViewState["listaAgenda"];
 72			}
 73			set { ViewState["listaAgenda"] = value; }
 74		}
 75
 76		/// <summary>
 77		/// Gets or sets the lista cursos.
 78		/// </summary>
 79		/// <value>
 80		/// The lista cursos.
 81		/// </value>
 82		//public List<Curso> listaCursos
 83		//{
 84		//    get
 85		//    {
 86		//        if (ViewState["listaCursos"] == null && cicloLectivoActual != null)
 87		//        {
 88		//            BLCurso objCurso = new BLCurso();
 89		//            listaCursos = objCurso.GetCursosCicloLectivo(new Curso() { cicloLectivo = cicloLectivoActual });
 90		//        }
 91		//        return (List<Curso>)ViewState["listaCursos"];
 92		//    }
 93		//    set { ViewState["listaCursos"] = value; }
 94		//}
 95		public List<Curso> listaCursos
 96		{
 97			get
 98			{
 99				if (ViewState["listaCursos"] == null && cicloLectivoActual != null)
100				{
101					BLCicloLectivo objBLCicloLectivo = new BLCicloLectivo();
102
103					Asignatura objFiltro = new Asignatura();
104					objFiltro.curso.cicloLectivo = cicloLectivoActual;
105					if (User.IsInRole(enumRoles.Docente.ToString()))
106						//nombre del usuario logueado
107						objFiltro.docente.username = User.Identity.Name;
108					listaCursos = objBLCicloLectivo.GetCursosByAsignatura(objFiltro);
109				}
110				return (List<Curso>)ViewState["listaCursos"];
111			}
112			set { ViewState["listaCursos"] = value; }
113		}
114		#endregion
115
116		#region --[Eventos]--
117		/// <summary>
118		/// Método que se ejecuta al dibujar los controles de la página.
119		/// Se utiliza para gestionar las excepciones del método Page_Load().
120		/// </summary>
121		/// <param name="e"></param>
122		protected override void OnPreRender(EventArgs e)
123		{
124			base.OnPreRender(e);
125			if (AvisoMostrar)
126			{
127				AvisoMostrar = false;
128
129				try
130				{
131					Master.ManageExceptions(AvisoExcepcion);
132				}
133				catch (Exception ex) { Master.ManageExceptions(ex); }
134			}
135		}
136
137		/// <summary>
138		/// Handles the Load event of the Page control.
139		/// </summary>
140		/// <param name="sender">The source of the event.</param>
141		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
142		protected void Page_Load(object sender, EventArgs e)
143		{
144			try
145			{
146				Master.BotonAvisoAceptar += (VentanaAceptar);
147				if (!Page.IsPostBack)
148				{
149					CargarPresentacion();
150					if (propAgenda.idAgendaActividad > 0)
151					{
152						CargarLista(propAgenda);
153						CargaAgenda();
154					}
155					else
156						BuscarAgenda(propAgenda);
157				}
158				//this.txtDescripcionEdit.Attributes.Add("onkeyup", " ValidarCaracteres(this, 4000);");
159			}
160			catch (Exception ex)
161			{
162				AvisoMostrar = true;
163				AvisoExcepcion = ex;
164			}
165		}
166
167		/// <summary>
168		/// Ventanas the aceptar.
169		/// </summary>
170		/// <param name="sender">The sender.</param>
171		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
172		void VentanaAceptar(object sender, EventArgs e)
173		{
174			try
175			{
176				switch (AccionPagina)
177				{
178					case enumAcciones.Limpiar:
179						CargarPresentacion();
180						BuscarAgenda(null);
181						break;
182					case enumAcciones.Guardar:
183						AccionPagina = enumAcciones.Limpiar;
184						GuardarAgenda(ObtenerValoresDePantalla());
185						Master.MostrarMensaje(enumTipoVentanaInformacion.Satisfactorio.ToString(), UIConstantesGenerales.MensajeGuardadoOk, enumTipoVentanaInformacion.Satisfactorio);
186						break;
187					default:
188						break;
189				}
190			}
191			catch (Exception ex)
192			{
193				Master.ManageExceptions(ex);
194			}
195		}
196
197		/// <summary>
198		/// Handles the Click event of the btnEvaluacion control.
199		/// </summary>
200		/// <param name="sender">The source of the event.</param>
201		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
202		protected void btnEvaluacion_Click(object sender, EventArgs e)
203		{
204			try
205			{
206				Response.Redirect("ManageEvaluaciones.aspx", false);
207			}
208			catch (Exception ex)
209			{
210				Master.ManageExceptions(ex);
211			}
212		}
213
214		/// <summary>
215		/// Handles the Click event of the btnExcursion control.
216		/// </summary>
217		/// <param name="sender">The source of the event.</param>
218		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
219		protected void btnExcursion_Click(object sender, EventArgs e)
220		{
221			try
222			{
223				Response.Redirect("ManageExcursiones.aspx", false);
224			}
225			catch (Exception ex)
226			{
227				Master.ManageExceptions(ex);
228			}
229		}
230
231		/// <summary>
232		/// Handles the Click event of the btnReunion control.
233		/// </summary>
234		/// <param name="sender">The source of the event.</param>
235		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
236		protected void btnReunion_Click(object sender, EventArgs e)
237		{
238			try
239			{
240				Response.Redirect("ManageReuniones.aspx", false);
241			}
242			catch (Exception ex)
243			{
244				Master.ManageExceptions(ex);
245			}
246		}
247
248		/// <summary>
249		/// Handles the Click event of the btnBuscar control.
250		/// </summary>
251		/// <param name="sender">The source of the event.</param>
252		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
253		protected void btnBuscar_Click(object sender, EventArgs e)
254		{
255			try
256			{
257				BuscarFiltrando();
258			}
259			catch (Exception ex)
260			{
261				Master.ManageExceptions(ex);
262			}
263		}
264
265		/// <summary>
266		/// Handles the Click event of the btnAsignarRol control.
267		/// </summary>
268		/// <param name="sender">The source of the event.</param>
269		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
270		protected void btnGuardar_Click(object sender, EventArgs e)
271		{
272			try
273			{
274				string mensaje = ValidarPagina();
275				if (mensaje == string.Empty)
276				{
277					if (Page.IsValid)
278					{
279						//TODO: Aquí hay que llamar a la validación de disponibilidad de agenda
280						AccionPagina = enumAcciones.Guardar;
281						Master.MostrarMensaje(enumTipoVentanaInformacion.Confirmación.ToString(), UIConstantesGenerales.MensajeConfirmarCambios, enumTipoVentanaInformacion.Confirmación);
282					}
283				}
284				else
285				{
286					Master.MostrarMensaje(enumTipoVentanaInformacion.Advertencia.ToString(), UIConstantesGenerales.MensajeDatosFaltantes + mensaje, enumTipoVentanaInformacion.Advertencia);
287				}
288			}
289			catch (Exception ex)
290			{
291				Master.ManageExceptions(ex);
292			}
293		}
294
295		/// <summary>
296		/// Handles the Click event of the btnVolver control.
297		/// </summary>
298		/// <param name="sender">The source of the event.</param>
299		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
300		protected void btnVolver_Click(object sender, EventArgs e)
301		{
302			try
303			{
304				CargarPresentacion();
305				BuscarAgenda(propFiltroAgenda);
306				propAgenda = new AgendaActividades();
307			}
308			catch (Exception ex)
309			{
310				Master.ManageExceptions(ex);
311			}
312		}
313
314		/// <summary>
315		/// Método que se llama al hacer click sobre las acciones de la grilla
316		/// </summary>
317		/// <param name="sender">The source of the event.</param>
318		/// <param name="e">The <see cref="System.Web.UI.WebControls.GridViewCommandEventArgs"/> instance containing the event data.</param>
319		protected void gvwReporte_RowCommand(object sender, GridViewCommandEventArgs e)
320		{
321			try
322			{
323				switch (e.CommandName)
324				{
325					case "Editar":
326						propAgenda.idAgendaActividad = Convert.ToInt32(e.CommandArgument.ToString());
327						CargaAgenda();
328						lblTitulo.Text = "Agenda del Curso: " + propAgenda.cursoCicloLectivo.curso.nombre + " - " + propAgenda.cursoCicloLectivo.cicloLectivo.nombre;
329						break;
330				}
331			}
332			catch (Exception ex)
333			{
334				Master.ManageExceptions(ex);
335			}
336		}
337
338		/// <summary>
339		/// Handles the SelectedIndexChanged event of the ddlCicloLectivo control.
340		/// </summary>
341		/// <param name="sender">The source of the event.</param>
342		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
343		//protected void ddlCicloLectivo_SelectedIndexChanged(object sender, EventArgs e)
344		//{
345		//    try
346		//    {
347		//        int idCicloLectivo = Convert.ToInt32(ddlCicloLectivo.SelectedValue);
348		//        CargarComboCursos(idCicloLectivo, ddlCurso);
349		//    }
350		//    catch (Exception ex)
351		//    {
352		//        Master.ManageExceptions(ex);
353		//    }
354		//}
355
356		/// <summary>
357		/// Handles the PageIndexChanging event of the gvwReporte control.
358		/// </summary>
359		/// <param name="sender">The source of the event.</param>
360		/// <param name="e">The <see cref="System.Web.UI.WebControls.GridViewPageEventArgs"/> instance containing the event data.</param>
361		protected void gvwReporte_PageIndexChanging(object sender, GridViewPageEventArgs e)
362		{
363			try
364			{
365				gvwReporte.PageIndex = e.NewPageIndex;
366				CargarGrilla();
367			}
368			catch (Exception ex) { Master.ManageExceptions(ex); }
369		}
370
371		/// <summary>
372		/// Handles the PageIndexChanging event of the gvwAgenda control.
373		/// </summary>
374		/// <param name="sender">The source of the event.</param>
375		/// <param name="e">The <see cref="System.Web.UI.WebControls.GridViewPageEventArgs"/> instance containing the event data.</param>
376		protected void gvwAgenda_PageIndexChanging(object sender, GridViewPageEventArgs e)
377		{
378			try
379			{
380				gvwAgenda.PageIndex = e.NewPageIndex;
381				CargarGrillaAgenda();
382				btnBuscar.Visible = false;
383				btnVolver.Visible = true;
384				gvwReporte.Visible = false;
385				udpFiltrosBusqueda.Visible = false;
386				udpEdit.Visible = true;
387				udpEdit.Update();
388			}
389			catch (Exception ex) { Master.ManageExceptions(ex); }
390		}
391		#endregion
392
393		#region --[Métodos Privados]--
394		/// <summary>
395		/// Cargars the grilla.
396		/// </summary>
397		/// <typeparam name="T"></typeparam>
398		/// <param name="lista">The lista.</param>
399		private void CargarGrilla()
400		{
401			gvwReporte.DataSource = UIUtilidades.BuildDataTable<AgendaActividades>(listaAgenda).DefaultView;
402			gvwReporte.DataBind();
403			udpEdit.Visible = false;
404			udpGrilla.Update();
405		}
406
407		/// <summary>
408		/// Cargars the grilla agenda.
409		/// </summary>
410		private void CargarGrillaAgenda()
411		{
412			gvwAgenda.DataSource = UIUtilidades.BuildDataTable<EventoAgenda>(propAgenda.listaEventos).DefaultView;
413			gvwAgenda.DataBind();
414			udpEdit.Visible = false;
415			udpGrilla.Update();
416		}
417
418		/// <summary>
419		/// Cargars the presentacion.
420		/// </summary>
421		private void CargarPresentacion()
422		{
423			LimpiarCampos();
424			lblTitulo.Text = "Actividades";
425			CargarCombos(ddlCurso);
426			udpEdit.Visible = false;
427			btnVolver.Visible = false;
428			btnGuardar.Visible = false;
429			udpFiltrosBusqueda.Visible = true;
430			btnBuscar.Visible = true;
431			gvwReporte.Visible = true;
432			udpFiltros.Update();
433			udpGrilla.Update();
434		}
435
436		/// <summary>
437		/// Habilitars the botones detalle.
438		/// </summary>
439		/// <param name="habilitar">if set to <c>true</c> [habilitar].</param>
440		private void HabilitarBotonesDetalle(bool habilitar)
441		{
442			btnExcursion.Visible = habilitar;
443			btnEvaluacion.Visible = habilitar;
444			btnReunion.Visible = habilitar;
445		}
446
447		/// <summary>
448		/// Cargars the combos.
449		/// </summary>
450		private void CargarCombos(DropDownList ddlCurso)
451		{
452			lblCicloLectivoValor.Text = cicloLectivoActual.nombre;
453
454			UIUtilidades.BindCombo<Curso>(ddlCurso, listaCursos, "idCurso", "Nombre", true);
455
456			//ddlCurso.Enabled = false;
457		}
458
459		/// <summary>
460		/// Cargars the combo cursos.
461		/// </summary>
462		/// <param name="idCicloLectivo">The id ciclo lectivo.</param>
463		/// <param name="ddlCurso">The DDL curso.</param>
464		//private void CargarComboCursos(int idCicloLectivo, DropDownList ddlCurso)
465		//{
466		//    if (idCicloLectivo > 0)
467		//    {
468		//        List<Curso> listaCurso = new List<Curso>();
469		//        BLCicloLectivo objBLCicloLectivo = new BLCicloLectivo();
470		//        Curso objCurso = new Curso();
471
472		//        listaCurso = objBLCicloLectivo.GetCursosByCicloLectivo(idCicloLectivo);
473		//        UIUtilidades.BindCombo<Curso>(ddlCurso, listaCurso, "idCurso", "nombre", true);
474		//        ddlCurso.Enabled = true;
475		//    }
476		//    else
477		//    {
478		//        ddlCurso.Enabled = false;
479		//    }
480		//}
481
482		/// <summary>
483		/// Limpiars the campos.
484		/// </summary>
485		private void LimpiarCampos()
486		{
487			//ddlCicloLectivo.SelectedIndex = 0;
488			if (ddlCurso.Items.Count > 0) ddlCurso.SelectedIndex = 0;
489			HabilitarBotonesDetalle(false);
490			//chkActivo.Checked = true;
491		}
492
493		/// <summary>
494		/// Buscars the filtrando.
495		/// </summary>
496		private void BuscarFiltrando()
497		{
498			lblTitulo.Text = "Actividades";
499			//calfecha.ValidarRangoDesde();
500			AgendaActividades entidad = new AgendaActividades();
501			//entidad.cursoCicloLectivo.idCurso = Convert.ToInt32(ddlCurso.SelectedValue);
502			entidad.cursoCicloLectivo.idCursoCicloLectivo = Convert.ToInt32(ddlCurso.SelectedValue);
503			entidad.cursoCicloLectivo.idCicloLectivo = cicloLectivoActual.idCicloLectivo;
504			//entidad.fechaCreacion = Convert.ToDateTime(calfecha.ValorFecha);
505			//entidad.activo = chkActivo.Checked;
506			propFiltroAgenda = entidad;
507			BuscarAgenda(entidad);
508		}
509
510		/// <summary>
511		/// Buscars the entidads.
512		/// </summary>
513		/// <param name="entidad">The entidad.</param>
514		private void BuscarAgenda(AgendaActividades entidad)
515		{
516			CargarLista(entidad);
517			CargarGrilla();
518		}
519
520		/// <summary>
521		/// Cargars the lista.
522		/// </summary>
523		/// <param name="entidad">The entidad.</param>
524		private void CargarLista(AgendaActividades entidad)
525		{
526			entidad.activo = true;
527			if (User.IsInRole(enumRoles.Docente.ToString()))
528				entidad.usuario = ObjSessionDataUI.ObjDTUsuario.Nombre;
529			objBLAgenda = new BLAgendaActividades(entidad);
530			listaAgenda = objBLAgenda.GetAgendaActividades(entidad);
531		}
532
533		/// <summary>
534		/// Obteners the valores pantalla.
535		/// </summary>
536		/// <returns></returns>
537		private AgendaActividades ObtenerValoresDePantalla()
538		{
539			AgendaActividades entidad = new AgendaActividades();
540			entidad = propAgenda;
541			if (!esNuevo)
542			{
543				entidad.idAgendaActividad = propAgenda.idAgendaActividad;
544				entidad.cursoCicloLectivo.idCursoCicloLectivo = propAgenda.cursoCicloLectivo.idCursoCicloLectivo;
545			}
546			return entidad;
547		}
548
549		/// <summary>
550		/// Guardars the agenda.
551		/// </summary>
552		/// <param name="entidad">The entidad.</param>
553		private void GuardarAgenda(AgendaActividades entidad)
554		{
555			objBLAgenda = new BLAgendaActividades(entidad);
556			objBLAgenda.Save();
557		}
558
559		/// <summary>
560		/// Cargars the entidad.
561		/// </summary>
562		private void CargarValoresEnPantalla(int idAgendaActividad)
563		{
564			BLAgendaActividades objBLAgenda = new BLAgendaActividades(new AgendaActividades() { idAgendaActividad = idAgendaActividad });
565			objBLAgenda.GetById();
566			propAgenda = objBLAgenda.Data;
567		}
568
569		/// <summary>
570		/// Validars the pagina.
571		/// </summary>
572		/// <returns></returns>
573		private string ValidarPagina()
574		{
575			string mensaje = string.Empty;
576			return mensaje;
577		}
578
579		/// <summary>
580		/// Cargas the agenda.
581		/// </summary>
582		private void CargaAgenda()
583		{
584			AccionPagina = enumAcciones.Modificar;
585			esNuevo = false;
586			CargarValoresEnPantalla(propAgenda.idAgendaActividad);
587			propAgenda.listaEventos.Sort((p, q) => DateTime.Compare(p.fechaEvento, q.fechaEvento));
588			CargarGrillaAgenda();
589			HabilitarBotonesDetalle(propAgenda.activo);
590			btnBuscar.Visible = false;
591			btnVolver.Visible = true;
592			gvwReporte.Visible = false;
593			udpFiltrosBusqueda.Visible = false;
594			udpEdit.Visible = true;
595			udpEdit.Update();
596		}
597
598		#endregion
599	}
600}