コード例 #1
0
 public ActionResult Obtener(string id)
 {
     try
     {
         ObservacionRepository or            = new ObservacionRepository();
         List <Observacion>    observaciones = or.Listar(String.Empty);
         AmbienteView          av            = new AmbienteView();
         av.Mensaje       = "";
         av.Observaciones = observaciones;
         AmbienteRepository ar = new AmbienteRepository();
         Ambiente           a  = ar.Obtener(int.Parse(id));
         a.Correos   = ar.ListarCorreos(a.Id);
         av.Ambiente = a;
         return(View("Obtener", av));
     }
     catch (Exception ex)
     {
         return(View("Mensaje", new AmbienteView {
             Mensaje = ex.Message
         }));
     }
 }
コード例 #2
0
        public ActionResult Actualizar(AmbienteView ambienteView)
        {
            try
            {
                string id                    = Request.Form["txtId"];
                string nombreAmbiente        = Request.Form["txtNombreAmbiente"];
                string abreviatura           = Request.Form["txtAbreviatura"];
                int    orden                 = int.Parse(Request.Form["txtOrden"]);
                bool   final                 = Request.Form["chkFinal"] == "on";
                bool   fechaObligatoria      = Request.Form["chkFechaObligatoria"] == "on";
                bool   apruebaCalidad        = Request.Form["chkApruebaCalidad"] == "on";
                bool   envioPrimeraSolicitud = Request.Form["chkEnvioPrimeraSolicitud"] == "on";
                int    observacionId         = 0;
                if (Request.Form["cboObservaCalidad"] != null)
                {
                    observacionId = int.Parse(Request.Form["cboObservaCalidad"]);
                }

                Ambiente a = new Ambiente();
                a.Id                    = int.Parse(id);
                a.Nombre                = nombreAmbiente;
                a.Abreviatura           = abreviatura;
                a.Orden                 = orden;
                a.Final                 = final;
                a.FechaObligatoria      = fechaObligatoria;
                a.ApruebaCalidad        = apruebaCalidad;
                a.EnvioPrimeraSolicitud = envioPrimeraSolicitud;
                a.ObservaCalidad        = new Observacion {
                    Id = observacionId
                };

                AmbienteRepository ar = new AmbienteRepository();

                a = ar.Actualizar(a);
                if (a.Id == 0)
                {
                    ambienteView.Mensaje = "Hubo un error al actualizar el ambiente";
                    return(View("Crear", ambienteView));
                }

                ar.EliminarCorreos(a.Id);

                foreach (string key in Request.Form.AllKeys)
                {
                    if (key.IndexOf("txtCorreo") >= 0)
                    {
                        // Actualizar Correo
                        int    correoId = int.Parse(key.Substring("txtCorreo".Length));
                        Correo correo   = new Correo();
                        correo.Direccion = Request.Form["txtCorreo" + correoId.ToString()];
                        correo.Id        = correoId;
                        ar.InsertarAmbienteCorreo(correo, a.Id);
                    }
                    if (key.IndexOf("txtNuevoCorreo") >= 0)
                    {
                        // Insertar Correo
                        int    correoId = int.Parse(key.Substring("txtNuevoCorreo".Length));
                        Correo correo   = new Correo();
                        correo.Direccion = Request.Form["txtNuevoCorreo" + correoId.ToString()];
                        correo.Id        = 0;
                        ar.InsertarAmbienteCorreo(correo, a.Id);
                    }
                }

                a.Correos = ar.ListarCorreos(a.Id);

                ObservacionRepository or            = new ObservacionRepository();
                List <Observacion>    observaciones = or.Listar(String.Empty);
                AmbienteView          pp            = new AmbienteView();
                pp.Mensaje       = "Ambiente Actualizado";
                pp.Ambiente      = a;
                pp.Observaciones = observaciones;
                return(View("Obtener", pp));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new AmbienteView {
                    Mensaje = ex.Message
                }));
            }
        }
コード例 #3
0
ファイル: Util.cs プロジェクト: raulmercadox/cmdb
        public static void EnviarCorreo(Solicitud[] solicitudes, string asunto, string cuerpo, bool incluirSolicitante, bool incluirAnalistaDes, bool incluirAnalistaTest, bool incluirCopiados,
                                        bool incluirRMs, bool incluirCMs, bool incluirEjecutores, bool incluirAdicional)
        {
            try
            {
                SistemaRepository sr        = new SistemaRepository();
                SmtpClient        client    = new SmtpClient();
                string            correoCMS = sr.Obtener().CorreoCMS;
                MailAddress       maDesde   = new MailAddress(correoCMS, "Configuration Management System");
                UsuarioRepository ur        = new UsuarioRepository();

                MailAddressCollection mailsTo  = new MailAddressCollection();
                MailAddressCollection mailsCc  = new MailAddressCollection();
                MailAddressCollection mailsBcc = new MailAddressCollection();

                if (incluirRMs)
                {
                    List <Usuario> rms = ur.Listar(String.Empty, String.Empty, false, false, false, false, true, false, false);
                    foreach (Usuario rm in rms)
                    {
                        if (!String.IsNullOrEmpty(rm.Correo))
                        {
                            mailsBcc = IncluirCorreo(new MailAddress(rm.Correo), mailsBcc);
                        }
                    }
                }

                if (incluirCMs)
                {
                    List <Usuario> cms = ur.Listar(String.Empty, String.Empty, false, false, false, true, false, false, false);
                    foreach (Usuario cm in cms)
                    {
                        if (!String.IsNullOrEmpty(cm.Correo))
                        {
                            mailsBcc = IncluirCorreo(new MailAddress(cm.Correo), mailsBcc);
                        }
                    }
                }

                foreach (Solicitud s in solicitudes)
                {
                    if (incluirSolicitante)
                    {
                        if (!String.IsNullOrEmpty(s.Solicitante.Correo))
                        {
                            mailsCc = IncluirCorreo(new MailAddress(s.Solicitante.Correo), mailsCc);
                        }
                    }
                    if (incluirAnalistaDes)
                    {
                        if (!String.IsNullOrEmpty(s.AnalistaDesarrollo))
                        {
                            mailsCc = IncluirCorreo(new MailAddress(s.AnalistaDesarrollo), mailsCc);
                        }
                    }
                    if (incluirAnalistaTest)
                    {
                        Area[] areas          = Util.ObtenerAreas(s);
                        bool   enviarAnalista = false;
                        foreach (Area area in areas)
                        {
                            if (area.Correos.Count == 0 && area.Id > 0)
                            {
                                enviarAnalista = true;
                                break;
                            }
                        }
                        if (!String.IsNullOrEmpty(s.AnalistaTestProd))
                        {
                            if (enviarAnalista)
                            {
                                mailsTo = IncluirCorreo(new MailAddress(s.AnalistaTestProd), mailsTo);
                            }
                            else
                            {
                                mailsCc = IncluirCorreo(new MailAddress(s.AnalistaTestProd), mailsCc);
                            }
                        }
                    }
                    if (incluirCopiados)
                    {
                        string[] copiados = s.CopiarA.Split(new char[] { ';' });
                        foreach (string copia in copiados)
                        {
                            if (!String.IsNullOrEmpty(copia))
                            {
                                mailsCc = IncluirCorreo(new MailAddress(copia), mailsCc);
                            }
                        }
                    }
                    if (incluirEjecutores)
                    {
                        MailAddressCollection correos = ObtenerCorreoEjecutores(s);
                        foreach (MailAddress correo in correos)
                        {
                            mailsTo = IncluirCorreo(correo, mailsTo);
                        }
                    }
                    if (s.Ambiente.EnvioPrimeraSolicitud && Util.EsPrimerEnvio(s))
                    {
                        string[] correos = sr.Obtener().PrimeraSolicitud.Split(new char[] { ';' });
                        foreach (string correo in correos)
                        {
                            if (!String.IsNullOrEmpty(correo))
                            {
                                mailsBcc = IncluirCorreo(new MailAddress(correo), mailsBcc);
                            }
                        }
                    }
                    #region Se incluyen correos configurados a nivel de proyecto
                    var pr = new ProyectoRepository();
                    var proyectocorreos = pr.ListarCorreo(s.Proyecto);
                    foreach (var cor in proyectocorreos)
                    {
                        mailsCc = IncluirCorreo(new MailAddress(cor.Direccion), mailsCc);
                    }
                    #endregion
                }
                if (incluirAdicional)
                {
                    if (solicitudes.Count() > 0)
                    {
                        Ambiente           ambiente = solicitudes[0].Ambiente;
                        AmbienteRepository ar       = new AmbienteRepository();
                        List <Correo>      correos  = ar.ListarCorreos(ambiente.Id);
                        foreach (Correo correo in correos)
                        {
                            if (!String.IsNullOrEmpty(correo.Direccion))
                            {
                                mailsBcc = IncluirCorreo(new MailAddress(correo.Direccion), mailsBcc);
                            }
                        }
                    }
                }

                MailMessage mm = new MailMessage();
                mm.From = maDesde;
                mm.ReplyToList.Add(sr.Obtener().ResponderA);
                foreach (MailAddress mail in mailsTo)
                {
                    mm.To.Add(mail);
                }

                foreach (MailAddress mail in mailsCc)
                {
                    mm.CC.Add(mail);
                }
                foreach (MailAddress mail in mailsBcc)
                {
                    mm.Bcc.Add(mail);
                }



                mm.Subject    = asunto;
                mm.Body       = cuerpo;
                mm.IsBodyHtml = true;
                if (solicitudes.Count() == 1 && solicitudes[0].Emergente)
                {
                    mm.Priority = MailPriority.High;
                }
                client.Send(mm);
            }
            catch
            {
                throw;
            }
        }