/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

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