예제 #1
0
        public static void EnviarCorreo(string tipoSolicitud, string semanaCambio, int organizacionID, string clave, int usuarioID)
        {
            var seguridad = (SeguridadInfo)ObtenerSeguridad();

            var correo            = new CorreoPL();
            var correoenviar      = new CorreoInfo();
            var usuariosCorreo    = new List <UsuarioInfo>();
            var organizacionPL    = new OrganizacionPL();
            var usuarioInfo       = new UsuarioInfo();
            var usuarioPL         = new UsuarioPL();
            var organizacionInfo  = new OrganizacionInfo();
            var parametroPL       = new ParametroGeneralPL();
            var terminacionCorreo = new ParametroGeneralInfo();

            try
            {
                OrganizacionInfo organizacion = seguridad.Usuario.Organizacion;
                terminacionCorreo = parametroPL.ObtenerPorClaveParametro("CorreoTerminacion");

                string asuntoCorreo    = HttpContext.GetLocalResourceObject("~/Manejo/CapturaPedido.aspx", "msgAsuntoCorreo.Text").ToString();
                string mensajeCorreo   = HttpContext.GetLocalResourceObject("~/Manejo/CapturaPedido.aspx", "msgMensajeCorreo.Text").ToString();
                string parametroManejo = HttpContext.GetLocalResourceObject("~/Manejo/CapturaPedido.aspx", "clvCorreoJefeManejo.Text").ToString();

                organizacionInfo = organizacionPL.ObtenerPorID(organizacionID);
                if (string.IsNullOrEmpty(clave))
                {
                    usuarioInfo          = usuarioPL.ObtenerPorID(usuarioID);
                    correoenviar.Asunto  = String.Format(asuntoCorreo, tipoSolicitud, semanaCambio, organizacionInfo.Descripcion);
                    correoenviar.Correos = new List <string>();
                    correoenviar.Mensaje = String.Format(mensajeCorreo, tipoSolicitud, semanaCambio);
                    correoenviar.Correos.Add(usuarioInfo.UsuarioActiveDirectory + terminacionCorreo.Valor);

                    correo.EnviarCorreo(organizacion, correoenviar);
                }
                else
                {
                    usuariosCorreo = ObtenerCorreos(clave);
                    if (clave.Equals(parametroManejo))
                    {
                        usuariosCorreo.RemoveAll(x => x.OrganizacionID != organizacionID);
                    }
                    foreach (var usuario in usuariosCorreo)
                    {
                        correoenviar.Asunto  = String.Format(asuntoCorreo, tipoSolicitud, semanaCambio, organizacionInfo.Descripcion);
                        correoenviar.Correos = new List <string>();
                        correoenviar.Mensaje = String.Format(mensajeCorreo, tipoSolicitud, semanaCambio);
                        correoenviar.Correos.Add(usuario.UsuarioActiveDirectory + terminacionCorreo.Valor);

                        correo.EnviarCorreo(organizacion, correoenviar);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
예제 #2
0
        /// <summary>
        /// Envia el correo electronico de una incidencia con los correo configurados
        /// </summary>
        /// <param name="organizacion"></param>
        /// <param name="correoAenviar"></param>
        /// <returns></returns>
        public ResultadoOperacion EnviarCorreo(OrganizacionInfo organizacion, CorreoInfo correoAenviar)
        {
            ResultadoOperacion resultado;

            try
            {
                Logger.Info();
                var correoBl = new CorreoBL();
                resultado = correoBl.EnviarCorreo(correoAenviar, organizacion);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(resultado);
        }
예제 #3
0
        /// <summary>
        /// Método que envía correos al transportista correspondiente al embarque
        /// </summary>
        /// <param name="embarqueInfo"> Información que contendrá el correo </param>
        /// <param name="formatoCorreo"> Formato con el que se enviará el correo </param>
        /// <returns> Numero entero de acuerdo al estado de la solictuds. </returns>
        public int EnviarCorreo(EmbarqueInfo embarqueInfo, string formatoCorreo)
        {
            try
            {
                var programacionEmbarqueBL = new ProgramacionEmbarqueBL();
                var embarqueCorreo         = programacionEmbarqueBL.ObtenerInformacionCorreo(embarqueInfo);
                var correo       = new CorreoBL();
                var correoEnviar = new CorreoInfo();
                correoEnviar.Mensaje = String.Format(formatoCorreo, embarqueCorreo.Ruteo.OrganizacionOrigen.Descripcion,
                                                     embarqueCorreo.Ruteo.OrganizacionDestino.Descripcion,
                                                     embarqueCorreo.ResponsableEmbarque,
                                                     embarqueCorreo.TipoEmbarque.Descripcion,
                                                     embarqueCorreo.CitaCarga);
                correoEnviar.Correos = new List <string>();
                correoEnviar.Asunto  = "Solicitud de Unidad";
                correoEnviar.Correos.Add(embarqueInfo.Proveedor.Correo);
                var respuesta = correo.EnviarCorreo(correoEnviar, embarqueInfo.Organizacion);

                if (respuesta.Resultado)
                {
                    return(1);
                }
                else
                {
                    return(0);
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
예제 #4
0
        private void BtnEnviar_OnClick(object sender, RoutedEventArgs e)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(txtDestinatarios.Text))
                {
                    SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.BitacoraErrores_SinDestinatarios, MessageBoxButton.OK,
                                      MessageImage.Warning);
                    return;
                }

                var    rutaEjecutable = System.Reflection.Assembly.GetExecutingAssembly().Location.Substring(0, System.Reflection.Assembly.GetExecutingAssembly().Location.LastIndexOf("\\", StringComparison.Ordinal));
                string archivo        = string.Format("{0}\\{1}", rutaEjecutable, Properties.Resources.BitacoraErrores_NombreLog);
                if (File.Exists(archivo))
                {
                    string archivoCopiado = string.Format("{0}\\{1}", Path.GetTempPath(),
                                                          Properties.Resources.BitacoraErrores_NombreLog);
                    File.Copy(archivo, archivoCopiado, true);
                    var correopl = new CorreoPL();

                    if (!File.Exists(archivoCopiado))
                    {
                        SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                          Properties.Resources.BitacoraErrores_SinBitacora, MessageBoxButton.OK,
                                          MessageImage.Warning);
                        return;
                    }

                    List <string> destinatarios = (from cor in txtDestinatarios.Text.Split(';')
                                                   select cor).ToList();

                    var correo = new CorreoInfo
                    {
                        Asunto         = "Bitacora Errores SIAP",
                        Mensaje        = "Se adjunta archivo de Errores",
                        NombreOrigen   = "Sukarne",
                        Correos        = destinatarios,
                        ArchivoAdjunto = archivoCopiado
                    };

                    correopl.EnviarCorreo(
                        new OrganizacionInfo {
                        OrganizacionID = Auxiliar.AuxConfiguracion.ObtenerOrganizacionUsuario()
                    },
                        correo);
                    SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.BitacoraErrores_CorreoEnviado, MessageBoxButton.OK,
                                      MessageImage.Correct);
                    txtDestinatarios.Text = string.Empty;
                }
                else
                {
                    SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.BitacoraErrores_SinBitacora, MessageBoxButton.OK,
                                      MessageImage.Warning);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                SkMessageBox.Show(System.Windows.Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                  Properties.Resources.BitacoraErrores_ErrorDescargarArchivo, MessageBoxButton.OK,
                                  MessageImage.Error);
            }
        }
예제 #5
0
        /// <summary>
        /// Enviar corre electronico
        /// </summary>
        /// <param name="correoAenviar"></param>
        /// <param name="organizacion"></param>
        /// <returns></returns>
        internal ResultadoOperacion EnviarCorreo(CorreoInfo correoAenviar, OrganizacionInfo organizacion)
        {
            var resultado = new ResultadoOperacion {
                Resultado = true
            };

            try
            {
                var smtp                   = new SmtpClient();
                var correo                 = new MailMessage();
                var parametrosBl           = new ConfiguracionParametrosBL();
                var parametrosServidorSmtp = new ConfiguracionParametrosInfo
                {
                    OrganizacionID = organizacion.OrganizacionID,
                    TipoParametro  = (int)TiposParametrosEnum.ConfiguracionSmtp
                };
                IList <ConfiguracionParametrosInfo> datosServidorSmtp =
                    parametrosBl.ObtenerPorOrganizacionTipoParametro(parametrosServidorSmtp);

                if (datosServidorSmtp == null)
                {
                    resultado.Resultado = false;
                    resultado.Mensaje   = ResourceServices.Correo_ErrorParametrosServidor;
                    return(resultado);
                }

                ServidorSmtpInfo servidorSmtp = ObtenerInformacionServidor(datosServidorSmtp);

                if (servidorSmtp == null)
                {
                    resultado.Resultado = false;
                    resultado.Mensaje   = ResourceServices.Correo_ErrorParametrosServidor;
                    return(resultado);
                }
                correo.From = new MailAddress(servidorSmtp.Cuenta, correoAenviar.NombreOrigen);

                if (correoAenviar.Correos == null)
                {
                    resultado.Resultado = false;
                    resultado.Mensaje   = ResourceServices.Correo_SinDestinatario;
                    return(resultado);
                }

                foreach (var destinatario in correoAenviar.Correos)
                {
                    correo.To.Add(destinatario);
                }

                correo.Body            = correoAenviar.Mensaje;
                correo.Subject         = correoAenviar.Asunto;
                correo.SubjectEncoding = Encoding.UTF8;

                if (!string.IsNullOrWhiteSpace(correoAenviar.ArchivoAdjunto))
                {
                    var archivoAdjunto = new Attachment(correoAenviar.ArchivoAdjunto);
                    correo.Attachments.Add(archivoAdjunto);
                }


                correo.BodyEncoding = Encoding.UTF8;
                correo.IsBodyHtml   = true;
                correo.Priority     = MailPriority.High;

                smtp.Host      = servidorSmtp.Servidor;
                smtp.Port      = int.Parse(servidorSmtp.Puerto);
                smtp.EnableSsl = servidorSmtp.RequiereSsl;

                smtp.Credentials = new NetworkCredential(servidorSmtp.Cuenta, servidorSmtp.Autentificacion);
                smtp.Send(correo);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
            return(resultado);
        }
예제 #6
0
        /// <summary>
        /// Envia correo electronico
        /// </summary>
        /// <param name="organizacion"></param>
        /// <param name="correoAenviar"></param>
        /// <returns></returns>
        internal ResultadoOperacion EnviarCorreoElectronicoInsidencia(OrganizacionInfo organizacion, CorreoInfo correoAenviar)
        {
            var resultado = new ResultadoOperacion();

            try
            {
                var bitacoraBl = new BitacoraErroresDAL();

                var notificaciones = bitacoraBl.ObtenerNotificacionesPorAcciones(correoAenviar.AccionSiap);

                if (notificaciones == null)
                {
                    resultado.Resultado = false;
                    resultado.Mensaje   = ResourceServices.Correo_ErrorParametrosCorreoDestino;
                    return(resultado);
                }
                if (notificaciones.Count == 0)
                {
                    resultado.Resultado = false;
                    resultado.Mensaje   = ResourceServices.Correo_SinDestinatario;
                    return(resultado);
                }
                correoAenviar.Correos = new List <string>();
                foreach (var destinatario in notificaciones)
                {
                    correoAenviar.Correos.Add(destinatario.UsuarioDestino);
                }

                resultado = EnviarCorreo(correoAenviar, organizacion);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                resultado.Resultado = false;
                resultado.Mensaje   = ResourceServices.Correo_ErrorInesperado;
                return(resultado);
            }

            return(resultado);
        }