public async Task <ResponseModel <BookDetails> > InventoryReturnEntry(InverntoryReturnRequest entity, SecurityModel securityModel)
        {
            ResponseModel <BookDetails> response = new ResponseModel <BookDetails>();

            try
            {
                ScanFilter filter = new ScanFilter();
                var        book   = await _dynamoDbBookContext.GetByIdAsync(entity.BookId);

                filter.AddCondition("BookId", ScanOperator.Equal, entity.BookId);
                filter.AddCondition("UserId", ScanOperator.Equal, entity.UserId);
                var inventoryHistory = _dynamoDbHistoryContex.GetAsync(filter).Result.FirstOrDefault();
                if (inventoryHistory != null)
                {
                    inventoryHistory.ReturnStatus   = BookReturnStatus.Returned;
                    inventoryHistory.BookReturnDate = DateTime.UtcNow;
                    if (book.librarian.RenewOn < DateTime.UtcNow)
                    {
                        var dateDiff = (DateTime.UtcNow - book.librarian.RenewOn);
                        inventoryHistory.LateBy = dateDiff.Value.TotalDays.ToString();
                    }
                    await _dynamoDbHistoryContex.SaveAsync(inventoryHistory);

                    book.RemaningStock = book.RemaningStock + 1;
                    await _dynamoDbBookContext.SaveAsync(book);

                    var bookUserService = _dynamouserServices.GetAsync(filter).Result.FirstOrDefault();
                    if (bookUserService != null)
                    {
                        bookUserService.IsReserved = false;
                        await _dynamouserServices.SaveAsync(bookUserService);
                    }
                    response.Entity = book;
                    response.Status = true;
                    response.ReturnMessage.Add("Book stock has been updated sucessfully.");
                }
                else
                {
                    response.Entity = book;
                    response.Status = true;
                    response.ReturnMessage.Add("Oops!! book details not found in the history.");
                }
            }
            catch (AmazonServiceException amazon)
            {
                response.Status = false;
                response.ReturnMessage.Add($"Amazon error in table operation! Error: {amazon.Message}");
            }
            catch (Exception ex)
            {
                response.Status = false;
                response.ReturnMessage.Add(ex.Message);
            }
            return(response);
        }
        public async Task <IActionResult> InventoryReturnEntry(InverntoryReturnRequest entity)
        {
            SecurityModel securityModel          = (SecurityModel)(HttpContext.Items["SecurityModel"]);
            ResponseModel <BookDetails> response = new ResponseModel <BookDetails>();

            try
            {
                response = await _inventoryServices.InventoryReturnEntry(entity, securityModel);

                response.Token = securityModel.Token;
                if (!response.Status)
                {
                    return(BadRequest(response));
                }
                return(Ok(response));
            }
            catch (Exception ex)
            {
                response.Status = false;
                response.ReturnMessage.Add(ex.Message);
                return(BadRequest(response));
            }
        }