PageRenderTime 29ms CodeModel.GetById 16ms app.highlight 9ms RepoModel.GetById 2ms app.codeStats 0ms

/Docs/07-Implementacion/Source/trunk/EDUAR_Regular/EDUAR_SI/EDUAR_SI_BusinessLogic/BLNotificarSancion.cs

http://blpm.googlecode.com/
C# | 129 lines | 100 code | 11 blank | 18 comment | 7 complexity | 4e034db711df20410a98dc8d96a49d45 MD5 | raw file
  1using System;
  2using System.Collections.Generic;
  3using System.Data.SqlClient;
  4using EDUAR_Entities;
  5using EDUAR_SI_DataAccess;
  6using EDUAR_Utility.Enumeraciones;
  7using System.Text;
  8using System.Linq;
  9
 10namespace EDUAR_SI_BusinessLogic
 11{
 12	public class BLNotificarSancion : BLProcesoBase
 13	{
 14		#region --[Atributos]--
 15		/// <summary>
 16		/// Se utiliza para acceder a la capa de datos
 17		/// </summary>
 18		DANotificarSancion objDANotificar;
 19		#endregion
 20
 21		#region --[Propiedades]--
 22		#endregion
 23
 24		#region --[Constructores]--
 25		/// <summary>
 26		/// Constructor. LLama al constructor de la clase base BLProcesoBase.
 27		/// </summary>
 28		/// <param name="connectionString">Cadena de conexión a la base de datos.</param>
 29		public BLNotificarSancion(String connectionString)
 30			: base(connectionString)
 31		{
 32
 33		}
 34		#endregion
 35
 36		#region --[Métodos Públicos]--
 37		/// <summary>
 38		/// Procedimientoes the importar datos.
 39		/// </summary>
 40		public void ProcedimientoNotificarSancion()
 41		{
 42			try
 43			{
 44				objDANotificar = new DANotificarSancion(ConnectionString);
 45
 46				var listaSanciones = objDANotificar.GetInformeSanciones(enumProcesosAutomaticos.InformeSanciones.GetHashCode());
 47
 48				if (listaSanciones.Count > 0) EnviarEmailsSanciones(listaSanciones);
 49				ProcesosEjecutadosCreate(enumProcesosAutomaticos.InformeSanciones.GetHashCode(), true);
 50			}
 51			catch (Exception ex)
 52			{
 53				OnErrorProcess(enumProcesosAutomaticos.InformeSanciones.GetHashCode(), ex);
 54				throw ex;
 55			}
 56		}
 57		#endregion
 58
 59		#region --[Métodos Privados]--
 60		/// <summary>
 61		/// Importars the datos.
 62		/// </summary>
 63		private void EnviarEmailsSanciones(List<Sancion> listaSanciones)
 64		{
 65			try
 66			{
 67				int idTutorAnterior = 0;
 68				StringBuilder sbMail = null;
 69				listaSanciones.Sort((p, q) => DateTime.Compare(p.fecha, q.fecha));
 70				DateTime fechaMinima = listaSanciones[0].fecha;
 71				foreach (var item in listaSanciones)
 72				{
 73					if (idTutorAnterior != item.alumno.alumno.listaTutores[0].idPersona)
 74					{
 75						if (sbMail != null)
 76						{
 77							// cambio el tutor... primero envio el mail al anterior? 
 78							sbMail.Append("<br />");
 79							sbMail.AppendLine("EDU@R 2.0 - Educación Argentina del Nuevo Milenio");
 80							Email.EnviarMail("Sanciones " + fechaMinima.ToShortDateString() + " al " + DateTime.Now.ToShortDateString(), sbMail.ToString().Replace("\n", "<br />"), true);
 81						}
 82						// empiezo a armar un nuevo email
 83						sbMail = new StringBuilder();
 84						sbMail.AppendLine("Gracias por utilizar <b>EDU@R 2.0</b>");
 85						sbMail.Append("<br />");
 86						sbMail.AppendLine("Buenos días " + item.alumno.alumno.listaTutores[0].nombre + ",");
 87						sbMail.Append("<br />");
 88						sbMail.Append("A continuación se encuentra el detalle de sanciones disciplinarios aplicadas sobre sus alumnos ");
 89						sbMail.Append(" en el periodo ");
 90						sbMail.Append(fechaMinima.ToShortDateString() + " al " + DateTime.Now.ToShortDateString());
 91						sbMail.Append("<br /><br />");
 92
 93						sbMail.Append(("<b>" + item.alumno.alumno.nombre + " " + item.alumno.alumno.apellido + "</b> ").PadRight(25, ' '));
 94						sbMail.AppendLine("Fecha: " + item.fecha.ToShortDateString() + " - <u>Motivo</u>: " + item.tipoSancion.nombre + " por " + item.motivoSancion.descripcion + " - <u>Cantidad</u>: " + item.cantidad.ToString());
 95
 96						Email.AgregarDestinatario(item.alumno.alumno.listaTutores[0].email);
 97					}
 98					else
 99					{
100						sbMail.Append(("<b>" + item.alumno.alumno.nombre + " " + item.alumno.alumno.apellido + "</b> ").PadRight(25, ' '));
101						sbMail.AppendLine("Fecha: " + item.fecha.ToShortDateString() + " - <u>Motivo</u>: " + item.tipoSancion.nombre + " por " + item.motivoSancion.descripcion + " - <u>Cantidad</u>: " + item.cantidad.ToString());
102					}
103					// Para controlar si sigue siendo el mismo tutor que antes
104					idTutorAnterior = item.alumno.alumno.listaTutores[0].idPersona;
105				}
106				// envio el último mail despues que sale del for
107				if (sbMail != null)
108				{
109					// cambio el tutor... primero envio el mail al anterior? 
110					sbMail.Append("<br />");
111					sbMail.AppendLine("EDU@R 2.0 - Educación Argentina del Nuevo Milenio");
112					Email.EnviarMail("Sanciones " + fechaMinima.ToShortDateString() + " al " + DateTime.Now.ToShortDateString(), sbMail.ToString().Replace("\n", "<br />"), true);
113				}
114			}
115			catch (Exception ex)
116			{
117				throw ex;
118			}
119		}
120
121		public class Students
122		{
123			public string Nombre { get; set; }
124			public string Apellido { get; set; }
125			public int Edad { get; set; }
126		}
127		#endregion
128	}
129}