Example #1
0
        public ProductModelResponse GetSpecialProducts(GetSpecialProductRequest request)
        {
            //1 spacialid indirimdeki ürünler sliderına karsılık gelsın --->
            ProductModelResponse productResponse = new ProductModelResponse();

            try
            {
                SpacialArea spacialArea = _repositorySpacial.Get(t => t.ID == request.SpacialID).FirstOrDefault();

                if (spacialArea == null)
                {
                    productResponse.Products = null;
                    productResponse.SetStatus(Constants.ResponseCode.NOT_FOUND_ENTITY);
                    return(productResponse);
                }

                int index = (request.PageNumber - 1) * request.Count;//dbde kac kayıt es gecılmeli
                List <ProductSpacialAreaTable> spacialAreaProducts = _repositorySpacialTable.Get(t => t.SpacialAreaID == spacialArea.ID).Include(t => t.Product).Skip(index).Take(request.Count).ToList();

                if (spacialAreaProducts == null)
                {
                    productResponse.Products = null;
                    productResponse.SetStatus(Constants.ResponseCode.NOT_FOUND_ENTITY);
                    return(productResponse);
                }

                List <ProductModel> productList = new List <ProductModel>();
                foreach (ProductSpacialAreaTable item in spacialAreaProducts)
                {
                    productList.Add(new ProductModel
                    {
                        ID            = item.Product.ID,
                        Description   = item.Product.Description,
                        Price         = item.Product.Price,
                        ProductImages = item.Product.ProductImages.Select(t => t.URLFromAway).ToList(),
                        ProductName   = item.Product.ProductName,
                        Brand         = item.Product.BrandID
                    });
                }
                productResponse.Products = productList;

                int allcount = _repositorySpacialTable.Get(t => t.SpacialAreaID == spacialArea.ID).Count();
                productResponse.PagingInfo = new PagingInfo(request.PageNumber, request.Count, allcount);
                productResponse.SetStatus(Constants.ResponseCode.SUCCESS);
                return(productResponse);
            }
            catch (Exception ex)
            {
                productResponse.Products = null;
                productResponse.SetStatus(Constants.ResponseCode.FAILED_ON_DB_PROCESS, ex.Message);
                return(productResponse);
            }
        }
        public IActionResult GetSpecialProducts(GetSpecialProductRequest request)
        {
            BaseResponse response = _service.GetSpecialProducts(request);

            return(response.Code != (int)Constants.ResponseCode.SUCCESS ? StatusCode(500, response) : StatusCode(200, response));
        }