Example #1
0
        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));
        }
Example #2
0
        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"));
        }
Example #3
0
        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"));
        }