/// <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 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 the top 5. /// </summary> /// <param name="query">Query.</param> /// <returns>Products.</returns> public AnswerPage <Product> GetProductsTop5(BaseQueryPagination query) { try { return(IoCFactory.Resolve <IProductsServiceAgent>().GetProductsTop5(query)); } catch (Exception ex) { throw new Exception("Se produjo un error al consultar los productos del top 5", ex); } }
/// <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); }