private string GetMessageBody(Order order, DeniedCupon deniedCupon) { System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("ru-RU"); return(String.Format(@" <html> <body> <br> <br>Здравствуйте, {0} {1} {2}, <br>Напоминаем вам, что Вы забронировали время подачи документов в службе «одно окно» {3} на {4} в {5}. <p><b>Если Вы не можете</b> прийти в забронированное время, то, пожалуйста, <b>аннулируйте</b> бронирование здесь {6} </p> <br>Это письмо было сгенерировано автоматически. Отвечать на него не нужно. <p>Служба «одно окно» {7}.<br> {8}<br> {9}</p> </body> </html>", order.Client.UserData.LastName, order.Client.UserData.FirstName, order.Client.UserData.SecondName, Helpers.getAreaNameDeclination(order.CuponDate.Area.Name), order.CuponDate.date.ToShortDateString(), order.CuponDate.date.ToShortTimeString(), String.Format(@"<a href='http://prereg.mgaon.by/Cupon/DeniedCupon?key={0}'>Отменить запись</a>", deniedCupon.DeniedKey), Helpers.getAreaNameDeclination(order.CuponDate.Area.Name), order.CuponDate.Area.Adres, order.CuponDate.Area.Phone)); }
public ActionResult DeniedCupon(string key) { DeniedCupon deniedCupon = db.DeniedCupons.FirstOrDefault(x => x.DeniedKey == key); if (deniedCupon != null) { Order order = db.Orders.FirstOrDefault(x => x.id == deniedCupon.OrderId); order.Client = db.Clients.FirstOrDefault(x => x.id == order.ClientId); order.Client.UserData = db.UsersData.FirstOrDefault(x => x.id == order.Client.UserDataID); order.CuponDate = db.CuponDates.FirstOrDefault(x => x.id == order.CuponDateId); order.CuponDate.Area = db.Areas.FirstOrDefault(x => x.Id == order.CuponDate.AreaId); EmailService.SendMail(config.Value.NotificationEmail, order.CuponDate.Area.NotificationEmail, "Отмена записи", getMessageBody(order)); db.Orders.Remove(order); db.SaveChanges(); } return(RedirectToAction("MyCupons", "Cupon")); }
public Task Execute(IJobExecutionContext context) { string connectionString = context.JobDetail.JobDataMap.GetString("connectionString"); var optionsBuilder = new DbContextOptionsBuilder <ApplicationContext>(); var options = optionsBuilder .UseSqlServer(connectionString) .Options; using (ApplicationContext db = new ApplicationContext(options)) { List <SentNotification> sentNotificationsList = db.SentNotifications.Where(x => x.isSent == false).ToList(); foreach (var item in sentNotificationsList) { item.Order = db.Orders.FirstOrDefault(x => x.id == item.OrderId); item.Order.Client = db.Clients.FirstOrDefault(x => x.id == item.Order.ClientId); item.Order.Client.UserData = db.UsersData.FirstOrDefault(x => x.id == item.Order.Client.UserDataID); item.Order.CuponDate = db.CuponDates.FirstOrDefault(x => x.id == item.Order.CuponDateId); item.Order.CuponDate.Area = db.Areas.FirstOrDefault(x => x.Id == item.Order.CuponDate.AreaId); } foreach (var item in sentNotificationsList) { System.TimeSpan diff1 = item.Order.CuponDate.date.AddDays(1) - DateTime.Now; if (diff1.Days <= 1) { DeniedCupon deniedCupon = new DeniedCupon(); deniedCupon = db.DeniedCupons.FirstOrDefault(x => x.OrderId == item.OrderId); Services.EmailService.SendMail(new Services.NotificationEmail { DisplayngName = "Предварительная запись в службу Одно окно", Login = "******", Password = "******" }, item.Order.Client.UserData.EmailAdress, "Напоминание о записи на прием в службу «одно окно»", GetMessageBody(item.Order, deniedCupon)); item.isSent = true; db.SaveChanges(); } } } return(Task.CompletedTask); }
public IActionResult recordForm(Order model) { CuponDate cuponDate = db.CuponDates.First(x => x.id == int.Parse(HttpContext.Session.GetString("CuponId"))); Order newOrder = new Order(); var ordersList = db.Orders.ToList(); foreach (var item in ordersList) { if (item.CuponDateId == cuponDate.id) { return(View(model)); } } ApplicationUser applicationUser = new ApplicationUser(); newOrder.CuponDateId = db.CuponDates.First(x => x.id == int.Parse(HttpContext.Session.GetString("CuponId"))).id; newOrder.OrderDate = DateTime.Now; newOrder.Comment = model.Comment; if (User.Identity.IsAuthenticated) { int userId = db.Users.FirstOrDefault(x => x.Login == User.Identity.Name).Id; Client userClient = db.Clients.Where(x => x.User.Id == userId).FirstOrDefault(); applicationUser = db.Users.FirstOrDefault(x => x.Id == userId); applicationUser.UserSettings = db.UserSettings.FirstOrDefault(x => x.id == applicationUser.UserSettingsId); Client newClient = new Client(); newClient.UserId = userId; newClient.UserDataID = db.Users.First(x => x.Id == userId).UserDataID; db.Clients.Add(newClient); db.SaveChanges(); userClient = newClient; userClient.UserData = db.UsersData.FirstOrDefault(x => x.id == userClient.UserDataID); if (model.Client.UserData.FirstName != userClient.UserData.FirstName || model.Client.UserData.LastName != userClient.UserData.LastName || model.Client.UserData.SecondName != userClient.UserData.SecondName || model.Client.UserData.EmailAdress != userClient.UserData.EmailAdress || model.Client.UserData.Phone != userClient.UserData.Phone) { UserData userData = new UserData { EmailAdress = model.Client.UserData.EmailAdress, Phone = model.Client.UserData.Phone, SecondName = model.Client.UserData.SecondName, LastName = model.Client.UserData.LastName, FirstName = model.Client.UserData.FirstName }; db.UsersData.Add(userData); db.SaveChanges(); userClient.UserDataID = userData.id; userClient.UserData = userData; } newOrder.ClientId = userClient.id; } else { var userData = model.Client.UserData; db.UsersData.Add(userData); db.SaveChanges(); pre_registration.Models.Client newClient = new pre_registration.Models.Client(); newClient.UserDataID = userData.id; db.Clients.Add(newClient); db.SaveChanges(); newOrder.ClientId = newClient.id; } newOrder.Client = db.Clients.FirstOrDefault(x => x.id == newOrder.ClientId); newOrder.Client.UserData = db.UsersData.FirstOrDefault(x => x.id == newOrder.Client.UserDataID); newOrder.CuponDate = db.CuponDates.FirstOrDefault(x => x.id == newOrder.CuponDateId); newOrder.CuponDate.Area = db.Areas.FirstOrDefault(x => x.Id == newOrder.CuponDate.AreaId); db.Orders.Add(newOrder); db.SaveChanges(); DeniedCupon deniedCupon = new DeniedCupon(newOrder.id, Helpers.ConvertStringtoMD5(Guid.NewGuid().ToString())); db.DeniedCupons.Add(deniedCupon); db.SaveChanges(); if (applicationUser.UserSettings != null) { if (applicationUser.UserSettings.SendEmail) { EmailService.SendMail(config.Value.NotificationEmail, newOrder.Client.UserData.EmailAdress, "Запись в службу 'Одно окно'", getMessageBody(newOrder, deniedCupon)); } if (applicationUser.UserSettings.SendReminder) { // addSentNotification(newOrder.id); } } else { EmailService.SendMail(config.Value.NotificationEmail, newOrder.Client.UserData.EmailAdress, "Запись в службу 'Одно окно'", getMessageBody(newOrder, deniedCupon)); // addSentNotification(newOrder.id); } EmailService.SendMail(config.Value.NotificationEmail, newOrder.CuponDate.Area.NotificationEmail, "Запись на прием", getMessageForArea(newOrder)); HttpContext.Session.Remove("Date"); HttpContext.Session.Remove("Area"); HttpContext.Session.Remove("CuponId"); HttpContext.Session.Remove("continueWithOutRegistration"); return(RedirectToAction("Finish")); }