Example #1
0
 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) {  }
 }
Example #2
0
        public async Task <bool> CheckInBookAsync(BooksActivity req)
        {
            var bookActivity = await GetCheckOutActivityById(req.CheckOutActivityId);

            _dataContext.Entry(bookActivity).CurrentValues.SetValues(req);

            return(1 > 0);
        }
Example #3
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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
 public Task <bool> CheckOutBookAsync(BooksActivity req)
 {
     throw new NotImplementedException();
 }
Example #7
0
        public async Task <bool> CheckOutBookAsync(BooksActivity req)
        {
            await _dataContext.BookActivities.AddAsync(req);

            return(1 > 0);
        }