Ejemplo n.º 1
0
        public async Task <AccountResult> ApproveRejectRequest(RequestRejectViewModel reqRejViewModel)
        {
            var resultMessage = new AccountResult();

            SendEmail newMail = new SendEmail();

            SendEmailViewModel sendEmail = new SendEmailViewModel()
            {
                requestorEmail = reqRejViewModel.emailAddress,
                requestorName  = reqRejViewModel.name
            };

            var book = await _dataContext.Books.FindAsync(reqRejViewModel.id);

            if (book.isRequested == false)
            {
                throw new RestException(HttpStatusCode.NotFound, new { book = "This Book is Requested Yet" });
            }

            if (reqRejViewModel.approveOrReject == "approve")
            {
                book.issuedOn    = DateTime.Now;
                book.returnDate  = book.issuedOn.Value.AddDays(reqRejViewModel.returnDate);
                book.issuedBy    = book.requestedBy;
                book.isRequested = false;
                book.isAvailable = false;
                book.isTaken     = true;
                book.issuedBy    = book.requestedBy;
                book.requestedBy = null;

                sendEmail.subject = "Book Request Accepted /n";
                sendEmail.Message = sendEmail.requestorName + " , Your request for the book " +
                                    reqRejViewModel.bookName + "is Approved" +
                                    "The Submission Deadline for the Book is " + book.returnDate;
            }
            else
            {
                book.issuedOn    = null;
                book.returnDate  = null;
                book.issuedBy    = null;
                book.isRequested = false;
                book.isAvailable = true;
                book.isTaken     = false;
                book.issuedBy    = null;
                book.requestedBy = null;

                sendEmail.subject = "Book Request Rejected";
                sendEmail.Message = sendEmail.requestorName + " , Your request for the book " + reqRejViewModel.bookName + "is Rejected";
            }

            var success = _dataContext.SaveChanges() > 0;

            try
            {
                newMail.SendMail(sendEmail);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }

            if (success)
            {
                return(resultMessage);
            }

            throw new Exception("Problem Saving Changes");
        }
        public async Task <ActionResult> ApproveRejectRequest(RequestRejectViewModel reqRejViewModel)
        {
            await _bookStatus.ApproveRejectRequest(reqRejViewModel);

            return(Ok());
        }