示例#1
0
        public async Task <ResponseViewModel> PutAsync(int id, [FromBody] AssignBookInfo assignBook)
        {
            try
            {
                var currentBook = await _bookCountService.FindByAsync(p => p.BookID == assignBook.BookID);

                currentBook.BookCount += 1;
                var assignedBook = await _assignBookService.FindByAsync(p => p.BookID == assignBook.BookID &&
                                                                        p.UserID == assignBook.UserID && p.IsReturned == false);

                assignedBook.IsReturned   = true;
                assignedBook.ModifiedDate = DateTime.Now;
                currentBook.ModifiedDate  = DateTime.Now;
                await _bookCountService.UpdateAsync(currentBook);

                await _assignBookService.UpdateAsync(assignedBook);

                return(new ResponseViewModel
                {
                    IsSuccess = true,
                    Message = "Book is returned",
                    Data = currentBook.BookCount
                });
            }
            catch (Exception ex)
            {
                throw;
            }
        }
示例#2
0
        public async Task <bool> IfAssigned([FromBody] AssignBookInfo assignBook)
        {
            if (assignBook != null)
            {
                var assignedBook = await _assignBookService.GetFilteredAsync(p => p.BookID == assignBook.BookID &&
                                                                             p.UserID == assignBook.UserID &&
                                                                             p.IsReturned != true);

                if (!assignedBook.Any())
                {
                    return(false);
                }
            }
            return(true);
        }
示例#3
0
        public async Task <ResponseViewModel> PostAsync([FromBody] AssignBookInfo assignBook)
        {
            try
            {
                var response    = new ResponseViewModel();
                var currentBook = await _bookCountService.FindByAsync(p => p.BookID == assignBook.BookID);

                var validation = await _assignBookService.ValidateBookAssignAsync(currentBook, assignBook.UserID);

                if (validation.status)
                {
                    assignBook.CreatedDate  = DateTime.Now;
                    currentBook.CreatedDate = DateTime.Now;
                    await _assignBookService.AddAsync(assignBook);

                    currentBook.BookCount = currentBook.BookCount - 1;
                    await _bookCountService.UpdateAsync(currentBook);

                    response = new ResponseViewModel
                    {
                        IsSuccess = true,
                        Message   = "Book Assigned Succesfully"
                    };
                    return(response);
                }
                response = new ResponseViewModel
                {
                    IsSuccess = false,
                    Message   = validation.message
                };
                return(response);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }