private async void SendCheckinReminder(BooksActivity awaitingActivity, Book bookToBeReturned, ApplicationUser customer) { try { await _emailService.Send(new EmailMessage { Content = $"Dear {awaitingActivity.FullName}, <br> This is to remind" + $" you, the book with " + $"Title : {bookToBeReturned.Title} you collected " + $"on the {awaitingActivity.CheckOutDate} or {(awaitingActivity.CheckOutDate - DateTime.Today).TotalDays} " + $"day(s) ago is due for return.", Subject = "Library Reminder", FromAddresses = new List <EmailAddress> { new EmailAddress { Address = _emailConfiguration.SmtpUsername, Name = "Library Hub" } }, ToAddresses = new List <EmailAddress> { new EmailAddress { Address = customer.Email, Name = customer.FullName } }, }); } catch (SocketException) { } }
public async Task <bool> CheckInBookAsync(BooksActivity req) { var bookActivity = await GetCheckOutActivityById(req.CheckOutActivityId); _dataContext.Entry(bookActivity).CurrentValues.SetValues(req); return(1 > 0); }
private BookPenalty BuildPenaltyDomainObject(BooksActivity currentCheckedOutBook, CheckInCommand request, decimal penaltyFee, long lateDays) { var penaltyReq = new BookPenalty { ExpectedReturnDate = currentCheckedOutBook.ExpectedReturnDate, NumberOfDaysLate = Convert.ToInt64(lateDays), CheckOutActivityId = request.CheckOutActivityId, BookId = request.BookId, PenaltyFee = penaltyFee, CustomerId = currentCheckedOutBook.CustomerId, AdminUserId = request.AdminUserId }; return(penaltyReq); }
private BooksActivity BuildDomainObject(CheckOutCommand request, ApplicationUser user) { var checkOut = new BooksActivity { CustomerId = request.CustomerId, BookId = request.BookId, CheckOutDate = DateTime.Today, Email = user.Email, ExpectedReturnDate = request.DateToReturn.Date, FullName = user.FullName, NationalIdentificationNumber = user.NationalIdentificationNumber ?? "BIMC123QWEG", PhoneNumber = user.PhoneNumber, ReturnDate = null, Status = (int)BookActivityStatus.Check_Out, AdminUserId = request.AdminUserId }; return(checkOut); }
private BooksActivity BuildCheckInDomainObject(BooksActivity currentCheckedOutBook, CheckInCommand request) { var checkInReq = new BooksActivity { CustomerId = currentCheckedOutBook.CustomerId, BookId = request.BookId, CheckOutDate = currentCheckedOutBook.CheckOutDate, Email = currentCheckedOutBook.Email, ExpectedReturnDate = currentCheckedOutBook.ExpectedReturnDate, FullName = currentCheckedOutBook.FullName, NationalIdentificationNumber = currentCheckedOutBook.NationalIdentificationNumber, PhoneNumber = currentCheckedOutBook.PhoneNumber, ReturnDate = DateTime.Today, Status = (int)BookActivityStatus.Check_In, CheckOutActivityId = request.CheckOutActivityId, AdminUserId = request.AdminUserId }; return(checkInReq); }
public Task <bool> CheckOutBookAsync(BooksActivity req) { throw new NotImplementedException(); }
public async Task <bool> CheckOutBookAsync(BooksActivity req) { await _dataContext.BookActivities.AddAsync(req); return(1 > 0); }