Beispiel #1
0
        public async Task <ProductDetailResponseModel> ProductDetail(long id)
        {
            ProductDetailResponseModel response = null;
            var productTask = _productService.GetById(id);

            var product = await productTask;

            if (product != null)
            {
                response = new ProductDetailResponseModel
                {
                    Id                = product.ProductId,
                    ProductName       = product.ProductName,
                    ThumbnailUrl      = product.ThumnailUrl,
                    CategoryId        = product.CategoryId,
                    CategoryName      = product.Category.CategoryName,
                    ProductBrandName  = product.ProductBrand.ProductBrandName,
                    ProductStatusId   = product.ProductStatusId,
                    ProductStatusName = product.ProductStatus.ProductStatusName,
                    Price             = product.Price,
                    Stock             = product.Stock,
                    ViewCount         = product.ViewCount,
                    Description       = product.Description,
                };
                response.ProductColors = product.ProductColors
                                         .Select(x => new ProductColorModel
                {
                    ColorId        = x.ColorId,
                    ColorName      = x.Color.ColorName,
                    Price          = x.Price,
                    ProductColorId = x.ProductColorId,
                    ProductId      = x.ProductId,
                })
                                         .ToList();
                var storeAvailableTask = _productService.GetStoreAvailableForProductId(id);
                response.StoreAvailables = await storeAvailableTask;

                //var productBranchesList = _productService.GetProductBranches(id);
                //response.GetProductBranches = productBranchesList;

                var productImagesTask = _productService.GetImagesForProductId(id);

                response.Images = (await productImagesTask)
                                  .Select(x => new ProductImageModel
                {
                    ProductImageId  = x.ProductImageId,
                    ProductImageUrl = x.ProductImageUrl,
                    ProductId       = x.ProductId,
                })
                                  .ToList();
            }

            return(response);
        }
        public ActionResult ProductSearch(ProductDetailRequestModel model, string returnUrl)
        {
            model.ProductId = Convert.ToInt32(Request.Form["ProductDropDown"]);
            model.ProgramId = Convert.ToInt32(Request.Form["ProgramDropDown"]);
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // Calling WCF service.
            RateCalculatorServiceClient proxy = new RateCalculatorServiceClient();
            var res = new ProductDetailResponseModel();

            try
            {
                var result = proxy.GetLowerestProductRate(model.ProductId, model.ProgramId, model.StartDate, model.EndtDate);

                // calling directly from UI without wcf service layer. working fine.
                //var result = _productDetailBAL.GetLowerestProductRate(model.ProductId, model.ProgramId, model.StartDate, model.EndtDate);
                ViewBag.showResult = result != null ? true : false;

                if (ViewBag.showResult)
                {
                    res.ProductName  = result.ProductName;
                    res.ProgramName  = result.ProgramName;
                    res.LowerestRate = result.LowerstProductRate;
                    res.StartDate    = result.StartDate;
                    res.EndtDate     = result.EndDate;
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                proxy.Close();
            }


            return(View("_SearchResults", res));
        }