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; } }
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); }
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; } }