示例#1
0
        private static void OldReservations()
        {
            var db = new BookingContext();

            var maxTime = db.Settings.FirstOrDefault().MaxTime;

            foreach (var reservedBook in db.ReservedBook.Where(x => DateTime.Now > x.ReservedDate.AddDays(maxTime)))
            {
                var email = db.Users.FirstOrDefault(x => x.UserId == reservedBook.UserId).Email;

                MailNotifications.SendEmail(email, "Your reservation was auto-cancelled because the book was not collected on time.", "Reservation cancelled");

                db.Remove(new ReservedBook()
                {
                    ReservedBookId = reservedBook.ReservedBookId
                });
                db.SaveChanges();
            }
        }
示例#2
0
        private static void SendReminder()
        {
            var db = new BookingContext();

            var maxTime = db.Settings.FirstOrDefault().MaxTime;

            foreach (var reservedBook in db.ReservedBook.Where(x => x.ReturnDate != null && x.ReturnedDate == null))
            {
                var email = db.Users.FirstOrDefault(x => x.UserId == reservedBook.UserId).Email;

                if (reservedBook.ReturnDate.Value.Subtract(DateTime.Now).TotalDays < 0)
                {
                    MailNotifications.SendEmail(email, "Please return the book. Your time has expired.", "WARNING: OVERTIME!");
                }
                else if (reservedBook.ReturnDate.Value.Subtract(DateTime.Now).TotalDays < maxTime)
                {
                    MailNotifications.SendEmail(email, $"You have to return your book on: {reservedBook.ReturnDate}.", "Library reminder");
                }
            }
        }