X-Git-Url: https://git.llucax.com/z.facultad/75.10/miklolife.git/blobdiff_plain/5dcdc142187069476c648c3ee2dbb1a00aaf202e..1a14964592379a39d96bc84c53db779507d12415:/demo/src/Reportes/NotificacionesAdmin.cs?ds=sidebyside diff --git a/demo/src/Reportes/NotificacionesAdmin.cs b/demo/src/Reportes/NotificacionesAdmin.cs index 6c5c7d9..792478c 100644 --- a/demo/src/Reportes/NotificacionesAdmin.cs +++ b/demo/src/Reportes/NotificacionesAdmin.cs @@ -1,32 +1,117 @@ using System; +using System.IO; +using System.Configuration; +using Dominio.Autorizaciones; + namespace Reportes { /// /// Clase que contiene la funcionalidad para generar y enviar notificaciones /// - public class NotificacionesAdmin + public sealed class NotificacionesAdmin { #region Constructores - public NotificacionesAdmin() + private NotificacionesAdmin() + { + } + + private static NotificacionesAdmin _instancia = new NotificacionesAdmin(); + public static NotificacionesAdmin Instancia { + get { return NotificacionesAdmin._instancia; } } #endregion Constructores #region Métodos Públicos - public void EnviarAlPrestador( NotificacionPrestador.Tipo tipoNotif, InfoPrestacionesReport ip ) + public void EnviarAlPrestador( Prestador p, NotificacionPrestador.Tipo tipoNotif, InfoPrestacionesReport ip ) { + string currentDir = Directory.GetCurrentDirectory(); + + string dirMails = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioMails"] ); + if ( ! Directory.Exists(dirMails) ) + { + Directory.CreateDirectory( dirMails ); + } + + string pathName = Path.Combine( dirMails, "prestadores.txt" ); + string subject = string.Empty; + string extra = string.Empty; + switch ( tipoNotif ) + { + case NotificacionPrestador.Tipo.ProcesoExitoso: + subject = "OK " + ip.NombreArchivo; + break; + case NotificacionPrestador.Tipo.InfoNoRecibida: + subject = "NORECIBIDO " + DateTime.Now.ToString("yyyy-MM-dd"); + break; + case NotificacionPrestador.Tipo.ErrorGrave: + subject = "ERROR " + ip.NombreArchivo; + if ( ip.ErroresValidacion.Count == 0 ) + extra = @"--> El numero de Cuit informado en el archivo no se corresponde con el del Prestador"; + else + { + foreach ( string s in ip.ErroresValidacion ) + { + extra += ( @"--> " + s + System.Environment.NewLine ); + } + } + break; + } + + this.EscribirArchivo( pathName, subject, "Prestador: " + p.Cuit, extra ); } - public void EnviarAPagos( string titulo, string contenido ) + public void EnviarAPagos( string mensaje ) { + string currentDir = Directory.GetCurrentDirectory(); + + string dirMails = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioMails"] ); + if ( ! Directory.Exists(dirMails) ) + { + Directory.CreateDirectory( dirMails ); + } + string pathName = Path.Combine( dirMails, "pagos.txt" ); + string subject = mensaje; + + this.EscribirArchivo( pathName, subject, string.Empty, string.Empty ); } #endregion Métodos Públicos + + #region Métodos privados + + private void EscribirArchivo( string pathName, string subject, string titulo, string extra ) + { + StreamWriter w = null; + if ( File.Exists(pathName) ) + w = File.AppendText( pathName ); + else + w = File.CreateText( pathName ); + + w.WriteLine( @"*** " + titulo + "**************************************************" ); + w.WriteLine( @"*** " + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + " ******************************************************" ); + w.WriteLine( @"******************************************************************************" ); + w.WriteLine( @"Subject: " + subject ); + w.WriteLine(); + if ( extra.Trim() != string.Empty ) + { + w.WriteLine( "Detalle: " ); + w.WriteLine(extra); + w.WriteLine(); + } + w.WriteLine( @"------------------------------------------------------------------------------" ); + w.WriteLine(); + + w.Close(); + } + + #endregion Métodos privados } } +