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); } } } } } ; } }
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); } } } }