public void TermContractChecking(int timeSend)
        {
            //Console.WriteLine("*****************************ПРошло успешно***********************************************************");
            using (var scope = serviceScopeFactory.CreateScope())
            {
                var context = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
                foreach (var contract in context.Contracts.ToList())
                {
                    if (contract.Autorolongation == true)
                    {
                        contract.ContractTime.AddYears(1);

                        EmailSender sender = new EmailSender();
                        NotificationsForUsersProfile notificationsForUsersProfile = new NotificationsForUsersProfile(serviceScopeFactory);
                        foreach (var user in context.Users.Include(u => u.Favorites).ToList())
                        {
                            foreach (var fav in user.Favorites)
                            {
                                if (user.Email != null && fav.Contract == contract)
                                {
                                    Message message = new Message()
                                    {
                                        RecipientEmail = user.Email,
                                        Subject        = "ФинансСофт. Уведомление системы",
                                        Text           = $"Договор под номером {contract.ContractNumber} был атоматически продлён."
                                    };
                                    sender.SendEmail(message);
                                    notificationsForUsersProfile.NatificationSend(message, user.Id);
                                }
                            }
                        }
                    }
                    else if (DateTime.Now.AddDays(timeSend) >= contract.ContractTime)
                    {
                        EmailSender sender = new EmailSender();
                        NotificationsForUsersProfile notificationsForUsersProfile = new NotificationsForUsersProfile(serviceScopeFactory);
                        foreach (var user in context.Users.Include(u => u.Favorites).ToList())
                        {
                            foreach (var fav in user.Favorites)
                            {
                                if (user.Email != null && fav.Contract == contract)
                                {
                                    Message message = new Message()
                                    {
                                        RecipientEmail = user.Email,
                                        Subject        = "ФинансСофт. Уведомление системы",
                                        Text           = $"Дата окончания договора под номером {contract.ContractNumber} подходит к окончанию."
                                    };
                                    sender.SendEmail(message);
                                    notificationsForUsersProfile.NatificationSend(message, user.Id);
                                }
                            }
                        }
                    }
                }
                ;
            }
        }
Exemplo n.º 2
0
 public void PasswordNotification(int timeSend)
 {
     using (var scope = serviceScopeFactory.CreateScope())
     {
         var         context = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
         EmailSender sender  = new EmailSender();
         NotificationsForUsersProfile notificationsForUsersProfile = new NotificationsForUsersProfile(serviceScopeFactory);
         foreach (var user in context.Users.ToList())
         {
             if (DateTime.Now.AddDays(timeSend) >= user.DatePassword && user.Email != null)
             {
                 Message message = new Message()
                 {
                     RecipientEmail = user.Email,
                     Subject        = "ФинансСофт.Уведомление системы",
                     Text           = $"Уважаемый пользователь {user.UserName} подошел срок действия вашего пароля." +
                                      $" Обратитесь к администратору."
                 };
                 sender.SendEmail(message);
                 notificationsForUsersProfile.NatificationSend(message, user.Id);
             }
         }
     }
 }