/// <summary> /// Get Product by Id. /// </summary> /// <param name="id">Product Id.</param> /// <returns>Porduct.</returns> public AnswerPage <Product> GetProductById(int id) { var wsProductsClient = new wsConsultasProductosReference.consultasEspecialesProductosPortTypeClient(); var resultsService = wsProductsClient.wsBuscarproductoXID(id); AnswerPage <Product> answer = new AnswerPage <Product>(); answer.Page = 1; answer.PageSize = 10; answer.Total = resultsService == null ? 0 : resultsService.Count(); answer.Results = resultsService == null ? new List <Product>() : (from pro in resultsService select new Product() { Id = Convert.ToInt32(pro.ID), ProductId = Convert.ToInt32(pro.PRODUCTO_ID), Name = pro.NOMBRE, Description = pro.DESCRIPCION, Category = pro.CATEGORIA, ListPrice = Convert.ToInt32(pro.PRECIO_LISTA), Producer = pro.FABRICANTE, Image = pro.IMAGEN_URL }).ToList(); return(answer); }
/// <summary> /// Get Products by Description. /// </summary> /// <param name="query">Query.</param> /// <returns>Products.</returns> public AnswerPage <Product> GetProductsByDescription(BaseQueryPagination query) { var wsProductsClient = new wsConsultasProductosReference.consultasEspecialesProductosPortTypeClient(); var resultsService = wsProductsClient.wsBuscarProductosXDescripcion(query.Contains, query.Page, query.PageSize); AnswerPage <Product> answer = new AnswerPage <Product>(); answer.Page = query.Page; answer.PageSize = query.PageSize; answer.Total = resultsService == null ? 0 : Convert.ToInt32(resultsService.FirstOrDefault().CANTIDAD_REGISTROS); answer.Results = resultsService == null ? new List <Product>() : (from pro in resultsService select new Product() { Id = Convert.ToInt32(pro.ID), ProductId = Convert.ToInt32(pro.PRODUCTO_ID), Name = pro.NOMBRE, Description = pro.DESCRIPCION, Category = pro.CATEGORIA, ListPrice = Convert.ToInt32(pro.PRECIO_LISTA), Producer = pro.FABRICANTE, Image = pro.IMAGEN_URL }).ToList(); return(answer); }
/// <summary> /// Get the top 5. /// </summary> /// <returns>Top 5.</returns> public async Task <JsonResult> ProductsTop5() { Response.Expires = 0; AnswerPage <Product> answerProduct = new AnswerPage <Product>(); answerProduct = IoCFactoryBusiness.Resolve <IProductsService>().GetProductsTop5(new BaseQueryPagination() { Page = 1, PageSize = 5, Contains = "1" }); if (answerProduct.Results.Count > 0) { return(Json(new { Items = answerProduct.Results, Total = answerProduct.Results.Count, Message = answerProduct.Results.Count == 0 ? "No hay datos" : string.Empty }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { Items = new List <Product>(), Total = 0, Mensaje = "No hay datos" }, JsonRequestBehavior.AllowGet)); } }
/// <summary> /// Get Products. /// </summary> /// <param name="filterSearch">filter Search.</param> /// <param name="start">Start.</param> /// <param name="length">Length.</param> /// <param name="typeSearch">Type Search.</param> /// <returns>Products.</returns> public AnswerPage <Product> GetProducts(string filterSearch, int start, int length, TypeSearch typeSearch) { try { AnswerPage <Product> answerProduct = new AnswerPage <Product>(); BaseQueryPagination query = new BaseQueryPagination() { Contains = filterSearch, TotalReturn = true, Page = start / length + 1, PageSize = length }; switch (typeSearch) { case TypeSearch.Code: { int value; if (int.TryParse(filterSearch, out value)) { answerProduct = IoCFactory.Resolve <IProductsServiceAgent>().GetProductById(Convert.ToInt32(filterSearch)); } else { answerProduct = IoCFactory.Resolve <IProductsServiceAgent>().GetProductsByName(query); } break; } case TypeSearch.Name: { answerProduct = IoCFactory.Resolve <IProductsServiceAgent>().GetProductsByName(query); break; } case TypeSearch.Description: { answerProduct = IoCFactory.Resolve <IProductsServiceAgent>().GetProductsByDescription(query); break; } default: { answerProduct = IoCFactory.Resolve <IProductsServiceAgent>().GetProductsByName(query); break; } } return(answerProduct); } catch (Exception ex) { throw new Exception("Se produjo un error al consultar los productos", ex); } }
/// <summary> /// Get products. /// </summary> /// <param name="draw">Draw.</param> /// <param name="start">Start.</param> /// <param name="length">Length.</param> /// <param name="search">Search.</param> /// <param name="typeSearch">Type Search.</param> /// <returns>Products.</returns> public async Task <JsonResult> FilterProducts(int draw, int start, int length, Dictionary <string, string> search, TypeSearch typeSearch) { Response.Expires = 0; string filterSearch = string.Empty; if (search.ContainsKey("value")) { filterSearch = search["value"]; } AnswerPage <Product> answerProduct = new AnswerPage <Product>(); answerProduct = IoCFactoryBusiness.Resolve <IProductsService>().GetProducts(filterSearch, start, length, typeSearch); return(Json(new { draw = draw, recordsTotal = answerProduct.Total, recordsFiltered = answerProduct.Total, data = answerProduct.Results }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Get the top 5. /// </summary> /// <param name="query">Query.</param> /// <returns>Products.</returns> public AnswerPage <Product> GetProductsTop5(BaseQueryPagination query) { var wsTopProductsClient = new wsTopProductsReference.topProductosPortTypeClient(); var resultService = wsTopProductsClient.wsTopCinco(Convert.ToInt32(query.Contains)); var wsProductsClient = new wsConsultasProductosReference.consultasEspecialesProductosPortTypeClient(); AnswerPage <Product> answer = new AnswerPage <Product>(); answer.Page = query.Page; answer.PageSize = query.PageSize; answer.Total = resultService == null ? 0 : resultService.Count(); answer.Results = new List <Product>(); if (resultService != null) { foreach (var pro in resultService) { var resultsService = wsProductsClient.wsBuscarproductoXID(Convert.ToInt32(pro.PRODID)); var product = resultsService.FirstOrDefault(); answer.Results.Add( new Product() { Id = Convert.ToInt32(product.ID), ProductId = Convert.ToInt32(product.PRODUCTO_ID), Name = product.NOMBRE, Description = product.DESCRIPCION, Category = product.CATEGORIA, ListPrice = Convert.ToInt32(product.PRECIO_LISTA), Producer = product.FABRICANTE, Image = product.IMAGEN_URL }); } } return(answer); }