예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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));
            }
        }
예제 #4
0
        /// <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));
        }
예제 #6
0
        /// <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);
        }