PageRenderTime 17ms CodeModel.GetById 2ms app.highlight 11ms RepoModel.GetById 1ms app.codeStats 0ms

/Docs/07-Implementacion/Source/trunk/EDUAR_Regular/EDUAR/EDUAR_UI/Private/Mensajes/MsjeEnviado.aspx.cs

http://blpm.googlecode.com/
C# | 448 lines | 348 code | 32 blank | 68 comment | 30 complexity | 2d3293c464a36c835f93567c4256cfc5 MD5 | raw file
  1using System;
  2using System.Collections.Generic;
  3using System.Data;
  4using System.Drawing;
  5using System.Web.UI;
  6using System.Web.UI.WebControls;
  7using EDUAR_BusinessLogic.Common;
  8using EDUAR_Entities;
  9using EDUAR_UI.Shared;
 10using EDUAR_UI.Utilidades;
 11using EDUAR_Utility.Constantes;
 12using EDUAR_Utility.Enumeraciones;
 13
 14namespace EDUAR_UI
 15{
 16	public partial class MsjeEnviado : EDUARBasePage
 17	{
 18		#region --[Atributos]--
 19		private BLMensaje objBLMensaje;
 20
 21		PagedDataSource pds = new PagedDataSource();
 22
 23		#endregion
 24
 25		#region --[Propiedades]--
 26		/// <summary>
 27		/// Gets or sets the prop mensaje.
 28		/// </summary>
 29		/// <value>
 30		/// The prop mensaje.
 31		/// </value>
 32		public Mensaje propMensaje
 33		{
 34			get
 35			{
 36				if (ViewState["propMensaje"] == null)
 37					propMensaje = new Mensaje();
 38				return (Mensaje)ViewState["propMensaje"];
 39			}
 40			set
 41			{ ViewState["propMensaje"] = value; }
 42
 43		}
 44
 45		/// <summary>
 46		/// Gets or sets the lista mensajes.
 47		/// </summary>
 48		/// <value>
 49		/// The lista mensajes.
 50		/// </value>
 51		public List<Mensaje> listaMensajes
 52		{
 53			get
 54			{
 55				if (ViewState["listaMensajes"] == null)
 56					listaMensajes = new List<Mensaje>();
 57				return (List<Mensaje>)ViewState["listaMensajes"];
 58			}
 59			set
 60			{ ViewState["listaMensajes"] = value; }
 61
 62		}
 63
 64		public int CurrentPage
 65		{
 66			get
 67			{
 68				if (this.ViewState["CurrentPage"] == null)
 69				{
 70					return 0;
 71				}
 72				else
 73				{
 74					return Convert.ToInt16(this.ViewState["CurrentPage"].ToString());
 75				}
 76			}
 77			set
 78			{
 79				this.ViewState["CurrentPage"] = value;
 80			}
 81		}
 82		#endregion
 83
 84		#region --[Eventos]--
 85		/// <summary>
 86		/// Método que se ejecuta al dibujar los controles de la página.
 87		/// Se utiliza para gestionar las excepciones del método Page_Load().
 88		/// </summary>
 89		/// <param name="e"></param>
 90		protected override void OnPreRender(EventArgs e)
 91		{
 92			base.OnPreRender(e);
 93			if (AvisoMostrar)
 94			{
 95				AvisoMostrar = false;
 96
 97				try
 98				{
 99					Master.ManageExceptions(AvisoExcepcion);
100				}
101				catch (Exception ex) { Master.ManageExceptions(ex); }
102			}
103		}
104
105		/// <summary>
106		/// Handles the Load event of the Page control.
107		/// </summary>
108		/// <param name="sender">The source of the event.</param>
109		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
110		protected void Page_Load(object sender, EventArgs e)
111		{
112			try
113			{
114				Master.BotonAvisoAceptar += (VentanaAceptar);
115				if (!Page.IsPostBack)
116				{
117					BuscarMensajes();
118					divContenido.Visible = false;
119				}
120			}
121			catch (Exception ex)
122			{
123				AvisoMostrar = true;
124				AvisoExcepcion = ex;
125			}
126		}
127
128		/// <summary>
129		/// Ventanas the aceptar.
130		/// </summary>
131		/// <param name="sender">The sender.</param>
132		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
133		protected void VentanaAceptar(object sender, EventArgs e)
134		{
135			try
136			{
137				switch (AccionPagina)
138				{
139					case enumAcciones.Eliminar:
140						AccionPagina = enumAcciones.Limpiar;
141						Mensaje objMensaje = listaMensajes.Find(p => p.idMensaje == propMensaje.idMensajeDestinatario);
142						//objMensaje.idMensaje = idMensaje;
143						objMensaje.activo = false;
144						objMensaje.idMensajeDestinatario = 0;
145						BLMensaje objBLMensaje = new BLMensaje(objMensaje);
146						objBLMensaje.EliminarMensaje();
147						listaMensajes.Remove(objMensaje);
148						CargarGrilla();
149						udpGrilla.Update();
150						break;
151					case enumAcciones.Limpiar:
152						CargarPresentacion();
153						break;
154					case enumAcciones.Seleccionar:
155						EliminarSeleccionados();
156						CargarPresentacion();
157						break;
158					default:
159						break;
160				}
161
162			}
163			catch (Exception ex)
164			{
165				Master.ManageExceptions(ex);
166			}
167		}
168
169		/// <summary>
170		/// Método que se llama al hacer click sobre las acciones de la grilla
171		/// </summary>
172		/// <param name="sender">The source of the event.</param>
173		/// <param name="e">The <see cref="System.Web.UI.WebControls.GridViewCommandEventArgs"/> instance containing the event data.</param>
174		protected void gvwReporte_RowCommand(object sender, GridViewCommandEventArgs e)
175		{
176			try
177			{
178				int idMensajeDestinatario = Convert.ToInt32(e.CommandArgument);
179				Mensaje objMensaje = null;
180				switch (e.CommandName)
181				{
182					case "Leer":
183
184						foreach (GridViewRow item in gvwReporte.Rows)
185						{
186							item.BackColor = Color.Transparent;
187						}
188						objMensaje = new Mensaje();
189						objMensaje = listaMensajes.Find(p => p.idMensaje == idMensajeDestinatario);
190
191						litAsunto.Text = objMensaje.asuntoMensaje;
192						litFecha.Text = objMensaje.fechaEnvio.ToShortDateString() + " " + objMensaje.horaEnvio.Hour.ToString() + ":" + objMensaje.horaEnvio.Minute.ToString();
193						litRemitente.Text = objMensaje.destinatario.nombre + "  " + objMensaje.destinatario.apellido;
194						if (!objMensaje.destinatario.nombre.Contains("-")) litRemitente.Text += " <b>(" + objMensaje.destinatario.tipoPersona.nombre + ")</b>";
195						litContenido.Text = objMensaje.textoMensaje;
196						divContenido.Visible = true;
197						divPaginacion.Visible = true;
198						GridViewRow row = (GridViewRow)((Control)e.CommandSource).NamingContainer;
199						gvwReporte.Rows[row.RowIndex].BackColor = Color.Gainsboro;
200						break;
201					case "Eliminar":
202						AccionPagina = enumAcciones.Eliminar;
203						propMensaje.idMensajeDestinatario = Convert.ToInt32(e.CommandArgument.ToString());
204						divContenido.Visible = false;
205						Master.MostrarMensaje(this.Page.Title, UIConstantesGenerales.MensajeEliminar, enumTipoVentanaInformacion.Confirmación);
206						break;
207				}
208				udpGrilla.Update();
209			}
210			catch (Exception ex)
211			{
212				Master.ManageExceptions(ex);
213			}
214		}
215
216		/// <summary>
217		/// Handles the Click event of the btnEliminar control.
218		/// </summary>
219		/// <param name="sender">The source of the event.</param>
220		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
221		protected void btnEliminar_Click(object sender, EventArgs e)
222		{
223			try
224			{
225				bool haySeleccion = false;
226				for (int i = 0; i < gvwReporte.Rows.Count; i++)
227				{
228					CheckBox checkbox = (CheckBox)gvwReporte.Rows[i].FindControl("checkEliminar");
229					if (checkbox != null && checkbox.Checked)
230					{
231						haySeleccion = true;
232						break;
233					}
234				}
235				if (haySeleccion)
236				{
237					AccionPagina = enumAcciones.Seleccionar;
238					Master.MostrarMensaje(this.Page.Title, UIConstantesGenerales.MensajeEliminarMensajesSeleccionados, enumTipoVentanaInformacion.Confirmación);
239				}
240				else
241				{
242					AccionPagina = enumAcciones.Limpiar;
243					Master.MostrarMensaje(this.Page.Title, UIConstantesGenerales.MensajeSinSeleccion, enumTipoVentanaInformacion.Advertencia);
244				}
245			}
246			catch (Exception ex)
247			{
248				Master.ManageExceptions(ex);
249			}
250		}
251
252		/// <summary>
253		/// Handles the Click event of the btnVolver control.
254		/// </summary>
255		/// <param name="sender">The source of the event.</param>
256		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
257		protected void btnVolver_Click(object sender, EventArgs e)
258		{
259			try
260			{
261				CargarPresentacion();
262			}
263			catch (Exception ex)
264			{
265				Master.ManageExceptions(ex);
266			}
267		}
268
269		/// <summary>
270		/// Headers the checked changed.
271		/// </summary>
272		/// <param name="sender">The sender.</param>
273		/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
274		protected void HeaderCheckedChanged(object sender, EventArgs e)//this is for header checkbox changed event
275		{
276			CheckBox cbSelectedHeader = (CheckBox)gvwReporte.HeaderRow.FindControl("cboxhead");
277			//if u checked header checkbox automatically all the check boxes will be checked,viseversa
278			foreach (GridViewRow row in gvwReporte.Rows)
279			{
280				CheckBox cbSelected = (CheckBox)row.FindControl("checkEliminar");
281				if (cbSelectedHeader.Checked == true)
282				{
283					cbSelected.Checked = true;
284				}
285				else
286				{
287					cbSelected.Checked = false;
288				}
289			}
290		}
291		#endregion
292
293		#region --[Métodos Privados]--
294		/// <summary>
295		/// Cargars the presentacion.
296		/// </summary>
297		private void CargarPresentacion()
298		{
299			BuscarMensajes();
300			udpReporte.Visible = true;
301			divPaginacion.Visible = true;
302			divContenido.Visible = false;
303			udpGrilla.Update();
304		}
305
306		/// <summary>
307		/// Buscars the entidads.
308		/// </summary>
309		/// <param name="entidad">The entidad.</param>
310		private void BuscarMensajes()
311		{
312			Mensaje entidad = new Mensaje();
313			entidad.remitente.username = ObjSessionDataUI.ObjDTUsuario.Nombre;
314			CargarLista(entidad);
315			CargarGrilla();
316		}
317
318		/// <summary>
319		/// Cargars the lista.
320		/// </summary>
321		/// <param name="entidad">The entidad.</param>
322		private void CargarLista(Mensaje entidad)
323		{
324			objBLMensaje = new BLMensaje();
325			listaMensajes = objBLMensaje.GetMensajesEnviados(entidad);
326		}
327
328		/// Cargars the grilla.
329		/// </summary>
330		/// <typeparam name="T"></typeparam>
331		/// <param name="lista">The lista.</param>
332		private void CargarGrilla()
333		{
334			DataTable dt = UIUtilidades.BuildDataTable<Mensaje>(listaMensajes);
335			pds.DataSource = dt.DefaultView;
336			pds.AllowPaging = true;
337			pds.PageSize = Convert.ToInt16(ddlPageSize.SelectedValue);
338			pds.CurrentPageIndex = (CurrentPage > pds.PageCount) ? (pds.PageCount - 1) : CurrentPage;
339			lnkbtnNext.Visible = !pds.IsLastPage;
340			lnkbtnLast.Visible = !pds.IsLastPage;
341			lnkbtnPrevious.Visible = !pds.IsFirstPage;
342			lnkbtnFirst.Visible = !pds.IsFirstPage;
343			gvwReporte.DataSource = pds;
344			gvwReporte.DataBind();
345			doPaging();
346			lblCantidad.Text = dt.Rows.Count.ToString() + " Mensajes";
347			divContenido.Visible = false;
348			udpGrilla.Update();
349		}
350
351		/// <summary>
352		/// Eliminars the seleccionados.
353		/// </summary>
354		private void EliminarSeleccionados()
355		{
356			Mensaje objMensajesEliminar = new Mensaje();
357			for (int i = 0; i < gvwReporte.Rows.Count; i++)
358			{
359				CheckBox checkbox = (CheckBox)gvwReporte.Rows[i].FindControl("checkEliminar");
360				if (checkbox != null && checkbox.Checked)
361				{
362					int idMensajeDestinatario = 0;
363					Int32.TryParse(checkbox.Text, out idMensajeDestinatario);
364					if (idMensajeDestinatario > 0)
365						objMensajesEliminar.listaIDMensaje += string.Format("{0},", idMensajeDestinatario.ToString());
366				}
367			}
368			if (!string.IsNullOrEmpty(objMensajesEliminar.listaIDMensaje))
369			{
370				objMensajesEliminar.listaIDMensaje = objMensajesEliminar.listaIDMensaje.Substring(0, objMensajesEliminar.listaIDMensaje.Length - 1);
371				objMensajesEliminar.idMensajeDestinatario = 0;
372				objMensajesEliminar.idMensaje = 1;
373				//objMensajesEliminar.leido = true;
374				objMensajesEliminar.activo = false;
375				objBLMensaje = new BLMensaje(objMensajesEliminar);
376				objBLMensaje.EliminarListaMensajes();
377			}
378		}
379		#endregion
380
381		#region --[Propiedades]--
382		private void doPaging()
383		{
384			DataTable dt = new DataTable();
385			dt.Columns.Add("PageIndex");
386			dt.Columns.Add("PageText");
387			for (int i = 0; i < pds.PageCount; i++)
388			{
389				DataRow dr = dt.NewRow();
390				dr[0] = i;
391				dr[1] = i + 1;
392				dt.Rows.Add(dr);
393			}
394			dlPaging.DataSource = dt;
395			dlPaging.DataBind();
396		}
397
398		protected void dlPaging_ItemCommand(object source, DataListCommandEventArgs e)
399		{
400			if (e.CommandName.Equals("lnkbtnPaging"))
401			{
402				CurrentPage = Convert.ToInt16(e.CommandArgument.ToString());
403				BuscarMensajes();
404			}
405		}
406
407		protected void dlPaging_ItemDataBound(object sender, DataListItemEventArgs e)
408		{
409			LinkButton lnkbtnPage = (LinkButton)e.Item.FindControl("lnkbtnPaging");
410			if (lnkbtnPage.CommandArgument.ToString() == CurrentPage.ToString())
411			{
412				lnkbtnPage.Enabled = false;
413				lnkbtnPage.Font.Bold = true;
414			}
415		}
416
417		protected void lnkbtnPrevious_Click(object sender, EventArgs e)
418		{
419			CurrentPage -= 1;
420			BuscarMensajes();
421		}
422
423		protected void lnkbtnNext_Click(object sender, EventArgs e)
424		{
425			CurrentPage += 1;
426			BuscarMensajes();
427		}
428
429		protected void lnkbtnLast_Click(object sender, EventArgs e)
430		{
431			CurrentPage = dlPaging.Controls.Count - 1;
432			BuscarMensajes();
433		}
434
435		protected void lnkbtnFirst_Click(object sender, EventArgs e)
436		{
437			CurrentPage = 0;
438			BuscarMensajes();
439		}
440
441		protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
442		{
443			CurrentPage = 0;
444			BuscarMensajes();
445		}
446		#endregion
447	}
448}