public async Task <ResponseModel <UserServicesItem> > CreateAsync(BookRequestParam item, SecurityModel security)
        {
            ResponseModel <UserServicesItem> response = new ResponseModel <UserServicesItem>();

            try
            {
                UserServicesItem bookRequestInfo = new UserServicesItem();
                ScanFilter       filter          = new ScanFilter();
                filter.AddCondition("UserId", ScanOperator.Equal, item.UserId);
                filter.AddCondition("BookId", ScanOperator.Equal, item.BookId);
                filter.AddCondition("IsReserved", ScanOperator.Equal, true);
                var userContextItem = _dynamodbContext.GetAsync(filter).Result;
                if (!userContextItem.Any())
                {
                    var user = await _dynamoDbUserContex.GetByIdAsync(item.UserId);

                    var book = await _dynamoDBBookContext.GetByIdAsync(item.BookId);

                    if (string.IsNullOrEmpty(bookRequestInfo.Id))
                    {
                        bookRequestInfo.Id = Guid.NewGuid().ToString();
                    }
                    bookRequestInfo.BookId        = item.BookId;
                    bookRequestInfo.UserId        = item.UserId;
                    bookRequestInfo.RequestStatus = "Requested";
                    bookRequestInfo.BookName      = book.BookName;
                    bookRequestInfo.BookAuthor    = book.BookAuthor;
                    bookRequestInfo.BookType      = book.BookType;
                    bookRequestInfo.BookPrice     = book.BookPrice;
                    bookRequestInfo.Stock         = book.Stock;
                    bookRequestInfo.UserName      = user.UserName;
                    bookRequestInfo.Email         = user.Email;
                    bookRequestInfo.FirstName     = user.FirstName;
                    bookRequestInfo.LastName      = user.LastName;
                    bookRequestInfo.SubmittedOn   = DateTime.UtcNow;
                    bookRequestInfo.IsReserved    = true;
                    await _dynamodbContext.SaveAsync(bookRequestInfo);

                    response.Status = true;
                    response.ReturnMessage.Add("Your request has been submitted to admin, Please wait for approbal.");
                }
                else
                {
                    response.Status = true;
                    response.ReturnMessage.Add("Oops!! You have already requested this book.");
                }
            }
            catch (Exception ex)
            {
                response.Status = false;
                response.ReturnMessage.Add(ex.Message);
            }
            return(response);
        }
        public async Task <IActionResult> BookRequest(BookRequestParam entity)
        {
            SecurityModel securityModel = (SecurityModel)(HttpContext.Items["SecurityModel"]);
            ResponseModel <UserServicesItem> response = new ResponseModel <UserServicesItem>();

            try
            {
                response = await _userServices.CreateAsync(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));
            }
        }