public ActionResult Create([Bind(Include = "ID,EmailAddress,Password,Port,Host,EnabledSSL,TemplateID,CreatedAt,UpdatedAt,Active")] MailConfig mailConfig) { try { string password = MailHelper.Encrypt(mailConfig.Password); var validateMail = _mailConfigService.GetAll().FirstOrDefault (x => x.EmailAddress == mailConfig.EmailAddress && x.ID != mailConfig.ID); if (validateMail != null) { ModelState.AddModelError("EmailAddress", "Email Address already exists"); } if (ModelState.IsValid) { mailConfig.Password = password; mailConfig.DateSend = DateTime.Now; mailConfig.UpdatedAt = DateTime.Now; mailConfig.CreatedAt = DateTime.Now; mailConfig.EmailAddress = mailConfig.EmailAddress.ToLower(); db.MailConfig.Add(mailConfig); db.SaveChanges(); SetAlert("Add Mail Config success", "success"); return(RedirectToAction("Index")); } }catch (Exception e) { SetAlert("Add Mail Config error", "error"); } return(View()); }
public ActionResult Create(ReportViewModel viewModel, HttpPostedFileBase file, string assetID) { string[] listAssetID = assetID.Split(','); List <string> listUserName = new List <string>(); List <string> listMail = new List <string>(); for (int i = 0; i < listAssetID.Length; i++) { int idAsset = Int32.Parse(listAssetID[i]); string name = _reportService.getNameUserReport(idAsset).FullName; string mail = _reportService.getNameUserReport(idAsset).Email; listUserName.Add(name); listMail.Add(mail); } List <String> listMailRecever = new List <string>(); listMailRecever.AddRange(listMail.Distinct()); var mailConfig = _mailConfigService.GetAll().FirstOrDefault(); var listMailConfig = _mailConfigService.GetAll(); string assetReport = _assetService.GetById(Int32.Parse(assetID)).Name; string areaAssetReport = _assetService.GetById(Int32.Parse(assetID), new string[] { "Area" }).Area.Name; string locationAssetReport = _assetService.GetById(Int32.Parse(assetID), new string[] { "Area", "Area.Location" }).Area.Location.Name; string userReport = User.Identity.GetUserName(); var pathTemplate = HttpRuntime.AppDomainAppPath; string body = MailHelper.createContent(pathTemplate, "templates//", "TemplateEmail", new object[] { userReport, assetReport, locationAssetReport, areaAssetReport, viewModel.Comment, DateTime.Now }); foreach (var mail in listMailConfig) { if (mail.DateSend != DateTime.Now.Date) { mail.Count = 0; mail.DateSend = DateTime.Now.Date; } if (mail.Count + listMailRecever.Count <= 2000) { mail.Count += listMailRecever.Count; foreach (var recever in listMailRecever) { MailHelper.SendMail(mailConfig.EmailAddress, mailConfig.Password, mailConfig.Host, mailConfig.Port, mailConfig.EnabledSSL, recever, "Report asset", "cim", body); } break; } _mailConfigService.Update(mail); } //process image upload //set path default string fileName = "default.png"; string path = Path.Combine(Server.MapPath("~/Data/Reports/"), fileName); try { if (file != null) { var fileExtension = Path.GetExtension(file.FileName); if (string.Equals(fileExtension, ".jpg", StringComparison.OrdinalIgnoreCase) || string.Equals(fileExtension, ".png", StringComparison.OrdinalIgnoreCase) || string.Equals(fileExtension, ".gif", StringComparison.OrdinalIgnoreCase) || string.Equals(fileExtension, ".jpeg", StringComparison.OrdinalIgnoreCase)) { fileName = Guid.NewGuid().ToString() + Path.GetExtension(file.FileName); path = Path.Combine(Server.MapPath("~/Data/Reports/"), fileName); } } ; file.SaveAs(path); } catch { } if (ModelState.IsValid) { var userName = User.Identity.GetUserName(); if (string.IsNullOrEmpty(userName)) { userName = "******"; } for (int i = 0; i < listAssetID.Length; i++) { var report = new Report() { AssetID = Int32.Parse(listAssetID[i]), Picture = fileName, RequestManager = listUserName[i], status = 1, ReportAt = DateTime.Now, Active = true, Comment = "- " + viewModel.Comment, CreatedAt = DateTime.Now, UserReport = userName }; _reportService.Add(report); _reportService.SaveChanges(); } ViewBag.isCreateSuccess = true; return(View()); } return(RedirectToAction("Index", "MyReport")); }