private MailMessage GetMailMessage(SurveyCompletion surveyCompletion, string attachmentFileName) { var mailMessage = new MailMessage(); mailMessage.To.Add(new MailAddress(surveyCompletion.Company.ComercialContact.Email)); mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["SMTPUsername"]); mailMessage.Subject = "Evaluando Software - Proceso Incompleto"; var continuelink = string.Format("{0}/Product/Evaluation/RegisterContinue?surveyCompletionId={1}&partialSaveKey={2}", ConfigurationManager.AppSettings["URL"], surveyCompletion.Id, surveyCompletion.PartialSaveKey); var unsuscribeLink = string.Format("{0}/JobUnsuscribe/RegisterContinueReminder?surveyCompletionId={1}&partialSaveKey={2}", ConfigurationManager.AppSettings["URL"], surveyCompletion.Id, surveyCompletion.PartialSaveKey); mailMessage.Body = "<div>"; mailMessage.Body += string.Format("<p>Le recordamos que el proceso de registro de su producto/servicio no ha sido finalizado. Para poder continuar con el proceso debe acceder al siguiente link: {0}</p>", continuelink); mailMessage.Body += "<p>Adjunto encontrará un PDF con información registrada hasta el momento.</p>"; mailMessage.Body += string.Format("<p style='font-size: 10px; color:gray'>Si no desea recibir mas este recordatorio, por favor ingrese al siguiente link {0}. Recuerde que solo a travez del link enviado en este correo podrá continuar con la carga de su producto/servicio sin perder los datos ya cargados.</p>", unsuscribeLink); mailMessage.Body += "</div>"; mailMessage.IsBodyHtml = true; var attachment = new Attachment(attachmentFileName, MediaTypeNames.Application.Pdf); mailMessage.Attachments.Add(attachment); return(mailMessage); }
private SurveyCompletion RegisterViewModelCompanyMap(App.Models.Oferta.RegisterViewModel model) { var surveyCompletion = new SurveyCompletion { Company = { CompanyName = model.CompanyName, CompanyDescription = model.CompanyDescription, CompanyWebSite = model.CompanyWebSite, CompanyCountry = model.CompanyCountry, CompanyCity = model.CompanyCity, CompanyAddress = model.CompanyAddress, CompanyPostalCode = model.CompanyPostalCode, CompanyBranchOfficesIn = model.CompanyBranchOfficesIn, CompanyFiscalStartDate = model.CompanyFiscalStartDate, CompanyFiscalEndDate = model.CompanyFiscalEndDate, CompanyPeopleInCompany = model.CompanyPeopleInCompany, ComercialContact = { FullName = model.ComercialContactFullName, Position = model.ComercialContactPosition, Phone = model.ComercialContactPhone, Email = model.ComercialContactEmail }, }//, //Product = //{ // Name = model.ProductName, // Version = model.ProductVersion, // Description = model.ProductDescription, // WebSite = model.ProductWebSite, // ProductContact = // { // FullName = model.ProductContactFullName, // Position = model.ProductContactPosition, // Phone = model.ProductContactPhone, // Email = model.ProductContactEmail // } //} }; return(surveyCompletion); }
public void Send(string attachmentFileName, SurveyCompletion surveyCompletion) { var companyMailMessage = this.GetMailMessage(surveyCompletion, attachmentFileName); this.emailSender.Send(companyMailMessage); }
private SurveyCompletionParent InsertSurveyCompletion(SurveyViewModel model, bool partial) { var category = this.modelContext .Categories .Where(x => x.Id == model.CategoryId) .FirstOrDefault(); var role = this.roleManager.FindByName("DEMANDA"); var surveyCompletionParent = new SurveyCompletionParent { Product = null, Role = role, Status = "Aprobado", PartialSave = partial, Category = category, Email = model.Email, PartialSaveKey = Guid.NewGuid().ToString() }; foreach (var survey in model.SurveyDTOs) { var surveyCompletion = new SurveyCompletion { SurveyId = survey.SurveyId, CategoryId = survey.CategoryId, Category = survey.CategoryName, Email = model.Email, Role = role, Parent = surveyCompletionParent, PartialSave = partial }; var surveyQuestions = this.modelContext .Questions .Include("Answers") .Where(x => x.Survey.Id == survey.SurveyId) .ToList(); foreach (var question in model.surveyCompletionDTOs) { var answers = new List <SurveyCompletionAnswer>(); if (question.SurveyId == survey.SurveyId) { if (question.Answers != null) { answers = surveyQuestions .Where(x => x.Id == question.QuestionId) .FirstOrDefault() .Answers .Where(x => question.Answers.Contains(x.Id)) .Select(x => new SurveyCompletionAnswer { Answer = x.DemandAnswer, AnswerValue = x.Value }) .ToList(); } string currentUserId = User.Identity.GetUserId(); ApplicationUser currentUser = this.modelContext.Users.FirstOrDefault(x => x.Id == currentUserId); var surveyCompletionQuestion = new SurveyCompletionQuestion { Question = question.Question, QuestionId = question.QuestionId, Answers = answers }; surveyCompletion.Questions.Add(surveyCompletionQuestion); } } this.modelContext.SurveysCompletion.Add(surveyCompletion); } this.modelContext.SurveyCompletionParent.Add(surveyCompletionParent); this.modelContext.SaveChanges(); return(surveyCompletionParent); }
private SurveyCompletionParent InsertSurveyCompletion(SurveyViewModel model, bool partial = false) { this.RemovePartialSurveyCompletion(model); var category = this.modelContext .Categories .Where(x => x.Id == model.CategoryId) .FirstOrDefault(); var userId = User.Identity.GetUserId(); var role = this.roleManager.FindByName("OFERTA"); var user = this.modelContext .Users .FirstOrDefault(x => x.Id == userId); var company = this.modelContext .Companies .Include("ComercialContact") .FirstOrDefault(x => x.Id == model.CompanyId); //aca crear el pridcuto con el contactro del producto var producto = new Product { Name = model.ProductName, Description = model.ProductDescription, WebSite = model.ProductWebSite, Version = model.ProductVersion, User = user, ProductContact = new Contact { FullName = model.ProductContactFullName, Position = model.ProductContactPosition, Phone = model.ProductContactPhone, Email = model.ProductContactEmail } }; producto.Company = company; modelContext.Products.Add(producto); modelContext.SaveChanges(); var surveyCompletionParent = new SurveyCompletionParent(company) { Product = producto, Role = role, Status = "Pendiente", PartialSave = partial, Category = category }; foreach (var surveyDTO in model.SurveyDTOs) { var categoryObj = this.modelContext .Categories .Where(x => x.Id == surveyDTO.CategoryId) .FirstOrDefault(); var surveyCompletion = new SurveyCompletion(company) { SurveyId = surveyDTO.SurveyId, CategoryId = surveyDTO.CategoryId, Product = producto, Category = surveyDTO.CategoryName, CategoryObj = categoryObj, Role = role, PartialSave = partial, Parent = surveyCompletionParent }; var surveyQuestions = this.modelContext .Questions .Include("Answers") .Where(x => x.Survey.Id == surveyDTO.SurveyId) .ToList(); foreach (var question in model.surveyCompletionDTOs) { var answers = new List <SurveyCompletionAnswer>(); if (question.SurveyId == surveyDTO.SurveyId) { if (question.Answers != null) { answers = surveyQuestions .Where(x => x.Id == question.QuestionId) .FirstOrDefault() .Answers .Where(x => question.Answers.Contains(x.Id)) .Select(x => new SurveyCompletionAnswer { Answer = x.SupplyAnswer, AnswerValue = x.Value }) .ToList(); } string currentUserId = User.Identity.GetUserId(); ApplicationUser currentUser = this.modelContext.Users.FirstOrDefault(x => x.Id == currentUserId); var surveyCompletionQuestion = new SurveyCompletionQuestion { Question = question.Question, QuestionId = question.QuestionId, Answers = answers }; surveyCompletion.Questions.Add(surveyCompletionQuestion); } } this.modelContext.SurveysCompletion.Add(surveyCompletion); } this.modelContext.SurveyCompletionParent.Add(surveyCompletionParent); this.modelContext.SaveChanges(); return(surveyCompletionParent); }