示例#1
0
        public IHttpActionResult AddProductToCart(AddProductToCartRequest request)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    string errorMsg = string.Empty;
                    errorMsg += string.Join(" ", ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage));
                    return(BadRequest(errorMsg));
                }

                var product = _productModel.GetProduct(request.ProductId);
                if (product == null)
                {
                    return(BadRequest(MessageResource.UnavailableProduct));
                }

                var response = new CartTransactionResponse()
                {
                    UserCart          = _shoppingCartModel.AddProductInCart(request),
                    AvailableProducts = _productModel.GetAllProducts().ToList()
                };
                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#2
0
 public IHttpActionResult GetProducts()
 {
     try
     {
         //Connect to the source of data to get all the data.
         var products = _productModel.GetAllProducts();
         return(Ok(products));
     }
     catch (Exception ex)
     {
         return(Content(HttpStatusCode.InternalServerError, ex.Message));
     }
 }
        public async Task <List <Sheev.Common.Models.GetAllResponse> > GetAll([FromQuery] int?pageNumber = 1, int?pageSize = 100, string filter = "")
        {
            _context.Security = new K2SO.Auth.Security(HttpContext.Request.Headers["Authorization"]);
            var  response = new List <Sheev.Common.Models.GetAllResponse>();
            long count    = 0;

            // Get's No of Rows Count
            // Get the rows
            response = _productModel.GetAllProducts(filter, ref count, pageNumber, pageSize);

            // Display TotalCount to Records to User
            long totalCount = count;

            // Calculating Totalpage by Dividing (No of Records / Pagesize)
            int totalPages = (int)Math.Ceiling(count / (double)pageSize);

            // if CurrentPage is greater than 1 means it has previousPage
            var previous_Page = (int)pageNumber > 1 ? "Yes" : "No";

            // if TotalPages is greater than CurrentPage means it has nextPage
            var next_Page = (int)pageNumber < totalPages ? "Yes" : "No";

            // Object which we are going to send in header
            var paginationMetadata = new
            {
                total_Count  = totalCount,
                page_Size    = pageSize,
                current_Page = pageNumber,
                total_Pages  = totalPages,
                previous_Page,
                next_Page
            };

            // Setting Header
            HttpContext.Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(paginationMetadata));

            // Dummy Code that should be removed
            HttpContext.Response.Headers.Add("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Pagination");
            HttpContext.Response.Headers.Add("Access-Control-Expose-Headers", "X-Pagination");

            return(response);
        }