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 })); } }
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 })); } }
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; } }