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