public void Renders_all() { // ARRANGE var expected = "<strong>bob</strong>"; var t = new Template(); t.Content.Subject = "<strong>{{name}}</strong>"; t.Content.Body = "<strong>{{name}}</strong>"; t.Content.TextBody = "<strong>{{name}}</strong>"; t.Content.SummaryBody = "<strong>{{name}}</strong>"; t.Content.SummaryHeader = "<strong>{{name}}</strong>"; t.Content.SummaryFooter = "<strong>{{name}}</strong>"; t.Content.SummarySubject = "<strong>{{name}}</strong>"; t.Content.SummaryTextBody = "<strong>{{name}}</strong>"; t.Content.SummaryTextHeader = "<strong>{{name}}</strong>"; t.Content.SummaryTextFooter = "<strong>{{name}}</strong>"; var r = new HandlebarsRenderer(t); // ACT var mail = new Models.Mail(); r.Render(mail, new { name = "bob" }); // ASSERT Assert.AreEqual(expected, mail.Body); Assert.AreEqual(expected, mail.Subject); Assert.AreEqual(expected, mail.SummaryBody); Assert.AreEqual(expected, mail.SummaryFooter); Assert.AreEqual(expected, mail.SummaryHeader); Assert.AreEqual(expected, mail.SummarySubject); Assert.AreEqual(expected, mail.TextBody); Assert.AreEqual(expected, mail.SummaryTextBody); Assert.AreEqual(expected, mail.SummaryTextFooter); Assert.AreEqual(expected, mail.SummaryTextHeader); }
// GET: Mail/Edit/5 public ActionResult Edit(int id) { Models.Mail mail = db.Mails.Find(id); if (mail != null) { return(View(mail)); } return(RedirectToAction("Index")); }
public ActionResult Create(MailViewModel mailVM) { try { User user = db.Users.Find(mailVM.SelectedValue); Models.Mail mail = new Models.Mail { Subject = mailVM.Subject, To = user, Body = mailVM.Body }; if (ModelState.IsValid) { db.Mails.Add(mail); db.SaveChanges(); send(mail.Subject, mail.To); //var body = "<p>Email From: {0} ({1})</p><p>Message:</p><p>{2}</p>"; //MailMessage message = new MailMessage(); ////message.IsBodyHtml = true; //// message.Priority = MailPriority.High; //message.Subject = mail.Subject; //message.To.Add(mail.To.Email); // replace with valid value //message.From = new System.Net.Mail.MailAddress("*****@*****.**"); // replace with valid value // // message.Subject = "Your email subject"; //message.Body = string.Format(body, "ontonomia", "*****@*****.**", mail.Body); //// message.IsBodyHtml = false; //SmtpClient smtp = new SmtpClient(_server); ////smtp.Host = _server; //smtp.Port = 465; //smtp.Credentials = new System.Net.NetworkCredential(_user, _password); //smtp.EnableSsl = true; //smtp.Timeout = 20000; //smtp.Send(message); return(RedirectToAction("Index")); } return(View(mailVM)); } catch (Exception) { return(View(mailVM)); } }
public ActionResult Edit(Models.Mail mail) { try { if (ModelState.IsValid) { db.Entry(mail).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(mail.MailId)); } catch { return(View()); } }
public void DifferentCase_ThrowsException() { // ARRANGE var subject = new DefaultReceiverMapper(); var mail = new Models.Mail(); dynamic receiver = new ExpandoObject(); receiver.FuLlName = "Markus Boxington"; receiver.eMAIl = "*****@*****.**"; // ACT subject.Map(receiver, mail); // ASSERT Assert.AreEqual("*****@*****.**", mail.Receiver.Address); Assert.AreEqual("Markus Boxington", mail.Receiver.DisplayName); }
public void Basic() { // ARRANGE var subject = new DefaultReceiverMapper(); var mail = new Models.Mail(); dynamic receiver = new ExpandoObject(); receiver.fullname = "Markus Boxington"; receiver.email = "*****@*****.**"; // ACT subject.Map(receiver, mail); // ASSERT Assert.AreEqual("*****@*****.**", mail.Receiver.Address); Assert.AreEqual("Markus Boxington", mail.Receiver.DisplayName); }
public ActionResult Delete(int id, Models.Mail mail) { try { Models.Mail deletedMail = db.Mails.Find(id); if (deletedMail != null) { db.Mails.Remove(deletedMail); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(id)); } catch { return(View()); } }
public void Initialization(Models.Mail mail, out MailMessage message, out SmtpClient client) { message = new MailMessage(); message.IsBodyHtml = mail.IsBodyHtml; message.BodyEncoding = Encoding.GetEncoding("UTF-8"); message.From = new MailAddress(mail.FromMail, mail.DisplayName); message.To.Add(new MailAddress(mail.ToMail)); message.Subject = mail.Subject; message.Body = mail.Body; message.Priority = MailPriority.High; client = new SmtpClient(); client.EnableSsl = mail.IsUsingSSL; client.Host = mail.SMTPServer; client.Port = mail.SMTPPort; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(mail.Username, mail.Password); }
public void WorksWithBoth() { // ARRANGE var mock = new Mock<IConfiguration>(); mock.Setup(m => m.GetValue(DefaultSenderConfiguration.APP_KEY_FROM_ADDRESS)) .Returns("*****@*****.**"); mock.Setup(m => m.GetValue(DefaultSenderConfiguration.APP_KEY_FROM_NAME)) .Returns("John Doe"); var subject = new DefaultSenderConfiguration(mock.Object); var mail = new Models.Mail(); // ACT subject.Configure(mail); // ASSERT Assert.AreEqual("*****@*****.**", mail.Sender.Address); Assert.AreEqual("John Doe", mail.Sender.DisplayName); }
public void Renders_Complex() { // ARRANGE var expected = "<strong>alice</strong>"; var t = new Template(); t.Content.Body = "<strong>{{name.sub}}</strong>"; var r = new HandlebarsRenderer(t); // ACT var mail = new Models.Mail(); r.Render(mail, new { name = new { sub = "alice" } }); // ASSERT Assert.AreEqual(expected, mail.Body); }
public void SendConfirmLink(Data.Models.User registerUser, string templatePath) { StreamReader streamReader = new StreamReader(templatePath); StringBuilder stringBuilder = new StringBuilder(streamReader.ReadToEnd()); streamReader.Close(); stringBuilder.Replace(@"[ActiveLink]", "https://google.com"); var mail = new Models.Mail(); mail.FromMail = Ultilities.AppInfor.AppGlobal.FromMail; mail.DisplayName = Ultilities.AppInfor.AppGlobal.RegisterMailDisplayName; mail.Subject = Ultilities.AppInfor.AppGlobal.RegisterMailSubject; mail.SMTPServer = Ultilities.AppInfor.AppGlobal.SMTPServer; mail.SMTPPort = Ultilities.AppInfor.AppGlobal.SMTPPort; mail.Username = Ultilities.AppInfor.AppGlobal.MailUserName; mail.Password = Ultilities.AppInfor.AppGlobal.MailPassword; mail.IsUsingSSL = true; mail.IsBodyHtml = true; mail.Body = stringBuilder.ToString(); mail.ToMail = registerUser.Email; this.Send(mail); }
public Task SendConfirmLinkAsync(Models.Mail mail) { throw new NotImplementedException(); }
public string SaveLogin() { using (Models.PhonesDataContext model = new Models.PhonesDataContext()) { try { var content = Request.Content.ReadAsByteArrayAsync().Result; string res = System.Text.Encoding.UTF8.GetString(content); res = res.Replace(@"\", @"\\"); var inv = JsonConvert.DeserializeObject <Models.CompInvent>(res); model.EventLogs.InsertOnSubmit(new Models.EventLog() { Date = DateTime.Now, Description = res, Name = @"Json Request" }); model.SubmitChanges(); foreach (string ip1 in inv.ip) { if (ip1.StartsWith("10.")) { var DomainUser = Lib.ADAuth.GetUserFromAD(inv.sAMAccountName); Models.Login l = new Models.Login() { sAMAccountName = inv.sAMAccountName, IPAddress = ip1, Date = DateTime.Now, OsVersion = inv.osversion, Email = DomainUser.email != null ? DomainUser.email : "", FIO = DomainUser.FIO != null ? DomainUser.FIO : "", DameWare = bool.Parse(inv.dameware), CPU_freq = inv.CPU_freq != null?int.Parse(inv.CPU_freq) : 0, GPU_HR = inv.GPU_HR != null?int.Parse(inv.GPU_HR) : 0, GPU_NAME = inv.GPU_NAME, CPU_name = inv.CPU_name, GPU_RAM = inv.GPU_RAM != null?int.Parse(inv.GPU_RAM) : 0, CompName = inv.compname, errors = inv.errors, osarch = inv.osarch, RAM = inv.RAM != null?int.Parse(inv.RAM) : 0, GPU_VR = inv.GPU_VR != null?int.Parse(inv.GPU_VR) : 0, ProfileSize = inv.userprofilesize, ProfileName = inv.userprofile }; model.Logins.InsertOnSubmit(l); model.SubmitChanges(); int TotalDiskSize = 0; int TotalFreeSize = 0; string DriveInterfaces = ""; int DrivesCount = 0; ///---Отбрабатываю данные по почте if (inv.bases != null && inv.bases.Count > 0) { foreach (var b in inv.bases) { Models.OdinC odinC = new Models.OdinC() { Info = b.Info, Name = b.Name }; l.OdinCs.Add(odinC); model.SubmitChanges(); } } ///---Обрабатываю данные по почте if (inv.mail != null && inv.mail.Count > 0) { int TotalMailSize = 0; foreach (var m in inv.mail) { var mail = new Models.Mail() { lable = m.lable, eml = string.IsNullOrEmpty(m.eml) ? 0: int.Parse(m.eml), dbx = string.IsNullOrEmpty(m.dbx) ? 0: int.Parse(m.dbx) }; TotalMailSize += mail.eml.Value; TotalMailSize += mail.dbx.Value; l.Mails.Add(mail); model.SubmitChanges(); } l.TotalMailSize = TotalMailSize; model.SubmitChanges(); } ///---Сохраняю физические диски if (inv.HDDs != null && inv.HDDs.Count > 0) { foreach (var dd in inv.HDDs) { var diskDrive = new Models.DiskDrive() { Interface = dd.disc_interface, Size = int.Parse(dd.disc_size), Name = dd.disc_name }; l.DiskDrives.Add(diskDrive); model.SubmitChanges(); ///---Сохраняю логические диски foreach (var ld in dd.LogicalDiscs) { TotalDiskSize += int.Parse(ld.Size); TotalFreeSize += int.Parse(ld.Free); var lDisk = new Models.LogicalDisk(); lDisk.Free = int.Parse(ld.Free); lDisk.Size = int.Parse(ld.Size); lDisk.Label = ld.Lable; diskDrive.LogicalDisks.Add(lDisk); model.SubmitChanges(); } DrivesCount += 1; DriveInterfaces += dd.disc_interface + ","; } l.TotalFreeSize = TotalFreeSize; l.TotalHDDSize = TotalDiskSize; l.DriveCount = DrivesCount; l.DriveInterfaces = DriveInterfaces; model.SubmitChanges(); } ///---Сохраняю принтеры if (inv.Printers != null && inv.Printers.Count > 0) { foreach (var p in inv.Printers) { l.Printers.Add(new Models.Printer() { Default = p.Default, Network = p.Network, Server = p.Server, ShareName = p.ShareName, Name = p.Name }); if (p.Default.ToLower() == "true") { l.DefaultPrinterName = p.Name; } model.SubmitChanges(); } } ///---Сохраняю программы if (inv.programs != null && inv.programs.Count > 0) { foreach (var pr in inv.programs) { l.UserPrograms.Add(new Models.UserProgram() { Name = pr.Name }); } model.SubmitChanges(); } ///---Сохраняю файлы if (inv.allfiles != null && inv.allfiles.Count > 0) { foreach (var f in inv.allfiles) { l.UserFiles.Add(new Models.UserFile() { Ext = f.Ext, Lable = f.Lable, Size = f.Size }); } model.SubmitChanges(); } } } model.SubmitChanges(); //List<string> patval = res.Trim().Trim('}').Trim('{').Split(',').ToList(); //string sAMAccountName = ""; //List<string> ip = new List<string>(); //string osversion = ""; //string dameware = ""; //string osarch = ""; //string RAM = ""; //string CPU_name = ""; //string CPU_freq = ""; //string GPU_NAME = ""; //string GPU_RAM = ""; //string GPU_HR = ""; //string GPU_VR = ""; //string HDDS = ""; //string error = ""; //bool bdameware = false; //foreach (string pv in patval) //{ // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "samaccountname") sAMAccountName = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "osversion") osversion = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "osarch") osarch = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "ram") RAM = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "cpu_name") CPU_name = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "cpu_freq") CPU_freq = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "gpu_name") GPU_NAME = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "gpu_ram") GPU_RAM = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "gpu_hr") GPU_HR = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "gpu_vr") GPU_VR = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "error") error = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "hdds") // { // HDDS = ""; // List<string> rips = pv.Split(':')[1].Trim().Trim('[').Trim(']').Split(',').ToList(); // foreach (string rip in rips) // { // HDDS += rip.Trim('"').Trim('\''); // } // } // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "ip") // { // List<string> rips = pv.Split(':')[1].Trim().Trim('[').Trim(']').Split(',').ToList(); // foreach (string rip in rips) // { // ip.Add(rip.Trim('"').Trim('\'')); // } // } // if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "dameware") // { // dameware = pv.Split(':')[1].Trim().Trim('"').Trim('\''); // bdameware = bool.Parse(dameware); // } //} //foreach (string ip1 in ip) //{ // var DomainUser = Lib.ADAuth.GetUserFromAD(sAMAccountName); // model.Logins.InsertOnSubmit(new Models.Login() // { // sAMAccountName = sAMAccountName, // IPAddress = ip1, // Date = DateTime.Now, // OsVersion = osversion, // Email = DomainUser.email != null? DomainUser.email:"", // FIO = DomainUser.FIO != null ? DomainUser.FIO : "", // DameWare = bdameware, // CPU_freq = CPU_freq, // GPU_HR = GPU_HR, // GPU_NAME = GPU_NAME, // CPU_name = CPU_name, // GPU_RAM = GPU_RAM, // errors = error, // HDDS = HDDS, // osarch = osarch, // RAM = RAM, // GPU_VR = GPU_VR // }); //} //model.SubmitChanges(); } catch (Exception ex) { model.EventLogs.InsertOnSubmit(new Models.EventLog() { Date = DateTime.Now, Description = ex.Message, Name = @"Json Request exception" }); model.SubmitChanges(); } } return("Ok"); }
public async Task SendAsync(Models.Mail mail) { Initialization(mail, out MailMessage message, out SmtpClient client); await client.SendMailAsync(message); }
public void Send(Models.Mail mail) { Initialization(mail, out MailMessage message, out SmtpClient client); client.Send(message); }
public void Send(dynamic receiver, string templateKey, dynamic data, CultureInfo language = null) { language = (language ?? CultureInfo.CurrentCulture); templateKey = (templateKey ?? string.Empty).Trim().ToLower(); if (string.IsNullOrWhiteSpace(templateKey)) { throw new ArgumentException("You must specify the template key.", "templateKey"); } var decoratedData = data; foreach (var decorator in m_decorators) { decoratedData = decorator.Decorate(decoratedData); } var decoratedReceiver = receiver; foreach (var decorator in m_decorators) { decoratedReceiver = decorator.Decorate(decoratedReceiver); } decoratedData.recipient = decoratedReceiver; IRenderer applicableRenderer = null; // try full name key-en-us var triedKeys = new List <string>(); var localizedKey = Template.GenerateLocalizedKey(templateKey, language); triedKeys.Add(localizedKey); if (m_renderer.ContainsKey(localizedKey)) { applicableRenderer = m_renderer[localizedKey]; } // try shorter name key-en var shorterLocalizedKey = localizedKey.Substring(0, localizedKey.LastIndexOf('-')); triedKeys.Add(shorterLocalizedKey); if (applicableRenderer == null && m_renderer.ContainsKey(shorterLocalizedKey)) { applicableRenderer = m_renderer[templateKey]; } // try just key triedKeys.Add(templateKey); if (applicableRenderer == null && m_renderer.ContainsKey(templateKey)) { applicableRenderer = m_renderer[templateKey]; } if (applicableRenderer == null) { throw new ArgumentException( string.Format("No template could be found for keys: {0}", string.Join(",", triedKeys)) , "templateKey"); } var mail = new Models.Mail(); m_senderConfiguration.Configure(mail); m_receiverMapper.Map(decoratedReceiver, mail); applicableRenderer.Render(mail, decoratedData); m_queue.Enqueue(mail, decoratedReceiver); if (!m_asyncActive) { m_mailSenderService.ProcessNext(); } }
public void SendLinkReset(Models.Mail mail) { throw new NotImplementedException(); }
// GET: Mail/Details/5 public ActionResult Details(int id) { Models.Mail mail = db.Mails.Find(id); return(View(mail)); }
public List <Models.ProyectoEconomico> generarContratos(List <IB.SUPER.APP.Models.OportunidadNegocio> Oportunidades) { int iNumProys = 0, idPE = -1, idPSN = -1; bool bConTransaccion = false; Guid methodOwnerID = new Guid("2558CB99-C43F-4930-A56C-D6F5CDE51980"); //IB.SUPER.APP.BLL.ProyectoEconomico ProyBLL = new IB.SUPER.APP.BLL.ProyectoEconomico(); List <Models.ProyectoEconomico> lstGenerados = new List <Models.ProyectoEconomico>(); OpenDbConn(); if (cDblib.Transaction.ownerID.Equals(new Guid())) { bConTransaccion = true; } if (bConTransaccion) { cDblib.beginTransaction(methodOwnerID); } BLL.Contrato oContrato = new Contrato(cDblib); BLL.FIGURAPROYECTOSUBNODO oFigura = new FIGURAPROYECTOSUBNODO(cDblib); IB.SUPER.IAP30.BLL.Nodo oNodo = new IAP30.BLL.Nodo(); try { foreach (IB.SUPER.APP.Models.OportunidadNegocio oport in Oportunidades) { DAL.OportunidadNegocio oON = new DAL.OportunidadNegocio(cDblib); #region Contrato y Extensión //Si la extension==0 -> grabarcontrato if (oport.t377_idextension == 0) { oON.GenerarContrato(oport); } else { //Compruebo que existe contrato. Si no existe, hay que darlo de alta //oContrato = new Contrato(cDblib); if (!oContrato.Existe(oport.t306_icontrato)) { oON.GenerarContrato(oport.t306_icontrato, oport.t314_idusuario_responsable); } } //La extensión se graba siempre oON.GenerarExtension(oport); //Si no existe proyecto asociado al contrato-> Generarlo (según parametrización puede crear 1 o 2 proyectos) iNumProys = oON.GetNumProyectos(oport.t306_icontrato); //PARA PRUEBAS //if (bConTransaccion) cDblib.commitTransaction(methodOwnerID); #endregion #region Proyecto Económico if (iNumProys == 0) { //PARA PRUEBAS //if (cDblib.Transaction.ownerID.Equals(new Guid())) cDblib.beginTransaction(methodOwnerID); //Obtengo el subnodo al que asociar el proyecto int t304_idsubnodo = SUBNODO.GetSubNodoDefecto(oport.t303_idnodo); //Obtengo datos del nodo para la creación del proyecto //oNodo = new IAP30.BLL.Nodo(); IB.SUPER.IAP30.Models.Nodo mNodo = oNodo.Select(oport.t303_idnodo); #region Cargo los datos para la generación del proyecto Models.ProyectoEconomico mPE = new IB.SUPER.APP.Models.ProyectoEconomico(); mPE.automatico = true; if (oport.t377_importeser >= oport.t377_importepro) { mPE.categoria = "S"; } else { mPE.categoria = "P"; } mPE.cod_cliente = oport.t302_idcliente_contrato; mPE.cod_contrato = oport.t306_icontrato; mPE.cod_naturaleza = 1; mPE.fecha_sap = DateTime.Now; mPE.fini_prevista = Fechas.getSigDiaUltMesCerrado(mNodo.t303_ultcierreECO); mPE.ffin_prevista = GetFechaFin(mPE.fini_prevista, oport.duracion); mPE.modalidad = GetModalidad(oport.tipocontrato.ToUpper()); if (mNodo.t303_modelocostes == "X") { mPE.modelo_coste = "J"; } else { mPE.modelo_coste = mNodo.t303_modelocostes; } if (mNodo.t303_modelotarifas == "X") { mPE.modelo_tarifa = "J"; } else { mPE.modelo_tarifa = mNodo.t303_modelotarifas; } mPE.nom_proyecto = oport.t377_denominacion; #endregion #region genero proyecto if (mNodo.t303_desglose) { #region Crea 2 proyectos if (oport.t377_importepro != 0) { if (oport.t377_importeser != 0) { mPE.nom_proyecto = "P/" + oport.t377_denominacion; } #region Crea un proyecto de categoria PRODUCTO //idPE = ProyBLL.Insert(mPE); //DAL.ProyectoEconomico cPE = new DAL.ProyectoEconomico(cDblib); //idPE = cPE.GenerarProyecto(mPE); idPE = oON.GenerarProyecto(mPE); //Creo el proyecto subnodo mPE.cod_proyecto = idPE; mPE.cod_subnodo = t304_idsubnodo; mPE.cualidad = "P"; mPE.cod_usuario_responsable = mNodo.t314_idusuario_responsable; mPE.seudonimo = mPE.nom_proyecto; //idPSN = cPE.GenerarProyectoSubnodo(mPE); idPSN = oON.GenerarProyectoSubnodo(mPE); //Asigno la figura de RTPE Models.FIGURAPROYECTOSUBNODO mFigura = new Models.FIGURAPROYECTOSUBNODO(); mFigura.t305_idproyectosubnodo = idPSN; mFigura.t310_figura = "M"; mFigura.t314_idusuario = oport.t314_idusuario_gestorprod; //oFigura = new FIGURAPROYECTOSUBNODO(cDblib); oFigura.Insert(mFigura); #region Cargo la lista de vuelta para mostrar al usuario los proyectos generados Models.ProyectoEconomico oProyectoEconomico = new Models.ProyectoEconomico(); oProyectoEconomico.cod_proyecto = idPE; oProyectoEconomico.nom_proyecto = mPE.nom_proyecto; oProyectoEconomico.cod_contrato = oport.t306_icontrato; oProyectoEconomico.cod_extension = oport.t377_idextension; oProyectoEconomico.t305_idproyectosubnodo = idPSN; oProyectoEconomico.t301_estado = "A"; oProyectoEconomico.t302_denominacion = oport.cliente; oProyectoEconomico.t301_categoria = mPE.categoria; oProyectoEconomico.t305_cualidad = "C"; oProyectoEconomico.proy_responsable = oport.responsable; lstGenerados.Add(oProyectoEconomico); #endregion #endregion } if (oport.t377_importeser != 0) { if (oport.t377_importepro != 0) { mPE.nom_proyecto = "S/" + oport.t377_denominacion; } #region Crea un proyecto de categoria SERVICIO //DAL.ProyectoEconomico cPE = new DAL.ProyectoEconomico(cDblib); //idPE = cPE.GenerarProyecto(mPE); idPE = oON.GenerarProyecto(mPE); //Creo el proyecto subnodo mPE.cod_proyecto = idPE; mPE.cod_subnodo = t304_idsubnodo; mPE.cualidad = "C"; mPE.cod_usuario_responsable = mNodo.t314_idusuario_responsable; mPE.seudonimo = mPE.nom_proyecto; //idPSN = cPE.GenerarProyectoSubnodo(mPE); idPSN = oON.GenerarProyectoSubnodo(mPE); //Asigno la figura de RTPE Models.FIGURAPROYECTOSUBNODO mFigura = new Models.FIGURAPROYECTOSUBNODO(); mFigura.t305_idproyectosubnodo = idPSN; mFigura.t310_figura = "M"; mFigura.t314_idusuario = oport.t314_idusuario_gestorprod; oFigura = new FIGURAPROYECTOSUBNODO(cDblib); oFigura.Insert(mFigura); #region Cargo la lista de vuelta para mostrar al usuario los proyectos generados Models.ProyectoEconomico oProyectoEconomico = new Models.ProyectoEconomico(); oProyectoEconomico.cod_proyecto = idPE; oProyectoEconomico.nom_proyecto = mPE.nom_proyecto; oProyectoEconomico.cod_contrato = oport.t306_icontrato; oProyectoEconomico.cod_extension = oport.t377_idextension; oProyectoEconomico.t305_idproyectosubnodo = idPSN; oProyectoEconomico.t301_estado = "A"; oProyectoEconomico.t302_denominacion = oport.cliente; oProyectoEconomico.t301_categoria = mPE.categoria; oProyectoEconomico.t305_cualidad = "C"; oProyectoEconomico.proy_responsable = oport.responsable; #endregion #endregion } #endregion } else { #region Crea un proyecto //DAL.ProyectoEconomico cPE = new DAL.ProyectoEconomico(cDblib); //idPE = cPE.GenerarProyecto(mPE); idPE = oON.GenerarProyecto(mPE); //Creo el proyecto subnodo mPE.cod_proyecto = idPE; mPE.cod_subnodo = t304_idsubnodo; mPE.cualidad = "C"; mPE.cod_usuario_responsable = mNodo.t314_idusuario_responsable; mPE.seudonimo = mPE.nom_proyecto; //idPSN = cPE.GenerarProyectoSubnodo(mPE); idPSN = oON.GenerarProyectoSubnodo(mPE); //Asigno la figura de RTPE Models.FIGURAPROYECTOSUBNODO mFigura = new Models.FIGURAPROYECTOSUBNODO(); mFigura.t305_idproyectosubnodo = idPSN; mFigura.t310_figura = "M"; mFigura.t314_idusuario = oport.t314_idusuario_gestorprod; oFigura = new FIGURAPROYECTOSUBNODO(cDblib); oFigura.Insert(mFigura); #region Cargo la lista de vuelta para mostrar al usuario los proyectos generados Models.ProyectoEconomico oProyectoEconomico = new Models.ProyectoEconomico(); oProyectoEconomico.cod_proyecto = idPE; oProyectoEconomico.nom_proyecto = mPE.nom_proyecto; oProyectoEconomico.cod_contrato = oport.t306_icontrato; oProyectoEconomico.cod_extension = oport.t377_idextension; oProyectoEconomico.t305_idproyectosubnodo = idPSN; oProyectoEconomico.t301_estado = "A"; oProyectoEconomico.t302_denominacion = oport.cliente; oProyectoEconomico.t301_categoria = mPE.categoria; oProyectoEconomico.t305_cualidad = "C"; oProyectoEconomico.proy_responsable = oport.responsable; oProyectoEconomico.codred_gestor_produccion = oport.codred_gestor_produccion; lstGenerados.Add(oProyectoEconomico); #endregion #endregion } #endregion //PARA PRUEBAS //cDblib.commitTransaction(methodOwnerID); } #endregion } //PARA PRUEBAS if (bConTransaccion) { cDblib.commitTransaction(methodOwnerID); } #region Correo //Con la lista de proyectos generados agrupo para cada gestor de producción concernido la lista de sus nuevos proyectos StringBuilder sb = new StringBuilder(); List <Models.Mail> lstGestores = new List <Models.Mail>(); try { foreach (Models.ProyectoEconomico oPE in lstGenerados) { sb.Length = 0; Models.Mail oProf = BuscarCodRed(lstGestores, oPE.codred_gestor_produccion); if (oProf == null) { oProf = new Models.Mail(); oProf.codred = oPE.codred_gestor_produccion; sb.Append(ponerCabecera()); sb.Append(@"<tr style='height:16px'><td style='width:80px;padding-left:3px;'>" + oPE.cod_proyecto.ToString("#,###") + "</td>"); sb.Append(@"<td style='width:460px;text-overflow:ellipsis;overflow:hidden;'>" + oPE.nom_proyecto + "</td>"); sb.Append(@"<td style='width:80px;'>" + oPE.cod_contrato.ToString("#,###") + "</td>"); sb.Append(@"<td style='width:80px;'>" + oPE.cod_extension.ToString("#,###") + "</td></tr>"); oProf.mensaje = sb.ToString(); lstGestores.Add(oProf); } else { sb.Append(@"<tr style='height:16px'><td style='width:80px;padding-left:3px;'>" + oPE.cod_proyecto.ToString("#,###") + "</td>"); sb.Append(@"<td style='width:460px;text-overflow:ellipsis;overflow:hidden;'>" + oPE.nom_proyecto + "</td>"); sb.Append(@"<td style='width:80px;'>" + oPE.cod_contrato.ToString("#,###") + "</td>"); sb.Append(@"<td style='width:80px;'>" + oPE.cod_extension.ToString("#,###") + "</td></tr>"); oProf.mensaje += sb.ToString(); } } //Con la lista de proyectos agrupada envío a cada gestor de producción concernido la lista de sus nuevos proyectos string sAsunto = "SUPER: Proyectos generados"; ArrayList aListCorreo = new ArrayList(); string sMensaje = ""; foreach (Models.Mail oGestor in lstGestores) { sMensaje = oGestor.mensaje + ponerPie(); string[] aMail = { sAsunto, sMensaje, oGestor.codred }; aListCorreo.Add(aMail); } Correo.EnviarCorreos(aListCorreo); } catch (Exception e1) { SUPDAL.Log.Insertar("App_Code/Negocio/APP/OportunidadNegocio.generarContratos. Error al enviar correos. " + e1.Message); } #endregion return(lstGenerados); } catch (Exception ex) { //rollback if (cDblib.Transaction.ownerID.Equals(new Guid())) { cDblib.rollbackTransaction(methodOwnerID); } throw new Exception(ex.Message); } finally { //nota.Dispose(); //ProyBLL.Dispose(); oContrato.Dispose(); oNodo.Dispose(); oFigura.Dispose(); } }
public void Sanitized_correctly() { // ARRANGE var expectedBody = "<strong><b>o</b></strong>"; var expectedText = "<b>o</b>"; var t = new Template(); t.Content.Body = "<strong>{{name}}</strong>"; t.Content.TextBody = "{{{name}}}"; var r = new HandlebarsRenderer(t); // ACT var mail = new Models.Mail(); r.Render(mail, new { name = "<b>o</b>" }); // ASSERT Assert.AreEqual(expectedBody, mail.Body); Assert.AreEqual(expectedText, mail.TextBody); }
public Task SendLinkResetAsync(Models.Mail mail) { throw new NotImplementedException(); }