private void ReloadEditProduct(ProductDetailViewModel productDetailViewModel)
        {
            ProductItemViewModel product = null;

            switch (ProductFilters.Instance.ProductType)
            {
            case ProductType.WillBeExpired:
                product = viewModel.WillBeExpiredProducts.FirstOrDefault(x => x.Id == productDetailViewModel.Id);
                break;

            case ProductType.None:
                product = viewModel.Products.FirstOrDefault(x => x.Id == productDetailViewModel.Id);
                break;

            default:
                break;
            }
            if (product != null)
            {
                product.Area       = productDetailViewModel.Area;
                product.RentPrice  = productDetailViewModel.RentPrice;
                product.SalePrice  = productDetailViewModel.SalePrice;
                product.RentUnit   = productDetailViewModel.SelectedRentUnit.Name;
                product.SaleUnit   = productDetailViewModel.SelectedSaleUnit.Name;
                product.RentUnitId = productDetailViewModel.SelectedRentUnit.Id;
                product.SaleUnitId = productDetailViewModel.SelectedSaleUnit.Id;
                product.IsHot      = productDetailViewModel.IsHot ?? false;
                product.OwnerInfo  = new OwnerInfoViewModel
                {
                    Name   = productDetailViewModel.OwnerName,
                    Mobile = productDetailViewModel.Mobile
                };
                product.UpdatedDate = DateTime.Now;
            }
        }
示例#2
0
        public IActionResult VeranderStock(long Id)
        {
            Product product           = productRepository.GetById(Id);
            ProductDetailViewModel vm = productConverter.ModelToViewModel(product);

            return(View(vm));
        }
示例#3
0
        public static ProductDetailViewModel CreateProductDetailViewModel(global::System.Guid id)
        {
            ProductDetailViewModel productDetailViewModel = new ProductDetailViewModel();

            productDetailViewModel.Id = id;
            return(productDetailViewModel);
        }
        // GET: Admin/ProductDetail/5
        public ActionResult ProductDetails(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Product product = db.Products.Find(id);
            List <ProductDetail> productDetail = db.ProductDetails.Where(m => m.ProductId == id).ToList();

            if (product == null)
            {
                return(HttpNotFound());
            }
            if (productDetail == null)
            {
                productDetail = new List <ProductDetail>();
            }
            var ProductDetailViewModel = new ProductDetailViewModel()
            {
                Product        = product,
                ProductDetails = productDetail
            };

            return(View("~/Views/AdminProduct/Details.cshtml", ProductDetailViewModel));
        }
示例#5
0
        public IActionResult Index(int?Id)
        {
            if (Id != null)
            {
                var model = new ProductDetailViewModel {
                    Product = repo.Products.FirstOrDefault(x => x.ProductID == Id && !x.Disable)
                };
                if (model.Product != null)
                {
                    if (model.Product.Category != null)
                    {
                        if (!products.Any() || currentCatID != model.Product.Category.CategoryID)
                        {
                            currentCatID = model.Product.Category.CategoryID;
                            products     = repo.Products.Where(x => x.Category.CategoryID == model.Product.Category.CategoryID).OrderBy(x => x.Name).ToList();
                        }
                    }

                    model.CurrentIndex = products.FindIndex(x => x.ProductID == model.Product.ProductID);
                    model.TotalProduct = products.Count;
                    if (model.CurrentIndex - 1 >= 0)
                    {
                        model.PrevProductID = products[model.CurrentIndex - 1].ProductID;
                    }
                    if (model.CurrentIndex + 1 < model.TotalProduct)
                    {
                        model.NextProductID = products[model.CurrentIndex + 1].ProductID;
                    }

                    return(View(model));
                }
            }
            return(RedirectToAction("Error", "Error"));
        }
示例#6
0
        public async Task <JsonResult> GetDetail(string metaTitle)
        {
            string status        = Instances.ERROR_STATUS;
            string statusMessage = string.Empty;
            var    product       = new ProductDetailViewModel();
            var    specification = new ProductSpecification();

            try
            {
                product = await _unitOfWork.ProductRepo.GetDetail(metaTitle);

                specification = await _unitOfWork.SpecificationRepo.GetByIdAsync(product.Id);

                specification.Product = null; // Avoid a circular reference to product instance

                status = Instances.SUCCESS_STATUS;
            }
            catch (Exception ex)
            {
                statusMessage = ex.Message;
            }
            var results = APIHelper.Instance.GetApiResult(new {
                Product       = product,
                Specification = specification
            }, status, statusMessage, 2);

            return(Json(results, JsonRequestBehavior.AllowGet));
        }
        // GET: Products/Details/5
        //Modified by Anne Vick. Now gets a list of orderProducts where the productId matches the id of the found product and that list along with the product in a product detail model view.
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            //get product with a join table with productType and User.
            var product = await _context.Product
                          .Where(p => p.Active == true)
                          .Include(p => p.ProductType)
                          .Include(p => p.User)
                          .FirstOrDefaultAsync(m => m.ProductId == id);

            if (product == null)
            {
                return(NotFound());
            }

            //Getting a list of orderProducts that are associated with the current product's Id.
            var orderProduct = await _context.OrderProduct
                               .Where(o => o.ProductId == id).ToListAsync();

            //view model for product details.
            ProductDetailViewModel ViewModel = new ProductDetailViewModel();

            //add product and order product lists to the Product Detail View Model.
            ViewModel.Product       = product;
            ViewModel.OrderProducts = orderProduct;

            //passes Detail View Model to the view.
            return(View(ViewModel));
        }
示例#8
0
        public ActionResult Product(int?Id)
        {
            if (Id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var productSingle = new ProductDetailViewModel();

            Product product = db.Products.Find(Id);

            if (product == null)
            {
                return(HttpNotFound());
            }

            List <ProductDetail> productDetails = db.ProductDetails.Where(pd => pd.ProductId == Id.Value).ToList();

            productSingle.Product        = product;
            productSingle.ProductDetails = productDetails;

            ViewBag.totalQuantity = productDetails.Where(m => m.Status == EProductStatus.Active).Sum(m => m.Quantity);

            List <Product> relatedProducts = db.Products.Where(rp => rp.CategoryId == product.CategoryId && rp.Id != Id).Take(4).ToList();

            productSingle.Products = relatedProducts;

            return(View(productSingle));
        }
示例#9
0
        public ProductDetailPage(ProductItemViewModel productItemViewModel = null, bool isFromProductPage = true)
        {
            try
            {
                InitializeComponent();
                map.PinDragEnd += Map_PinDragEnd;
            }
            catch (Exception ex)
            {
            }

            viewModel                      = new ProductDetailViewModel();
            _isFromProductPage             = isFromProductPage;
            BindingContext                 = viewModel;
            dialogService                  = new DialogService();
            viewModel.ProductItemViewModel = productItemViewModel;
            if (productItemViewModel != null)
            {
                viewModel.AllowEditProductCode = false;
                viewModel.AllowEditHouseNumber = false;
                viewModel.AllowEditOwnerNumber = false;
                viewModel.AllowEditTown        = false;
                if (productItemViewModel.CreatorId != App.AccountInfo.Id)
                {
                    viewModel.ShowOwnerName = false;
                }
            }
        }
        public bool Create(ProductDetailViewModel model, IDataSourceError error)
        {
            var productDetail = new ProductDetail
            {
                ProductId            = model.ProductId,
                FirstSpecificationId = model.FirstSpecification.Value,
                Price     = model.Price,
                SafeStock = model.SafeStock
            };

            if (model.SecondSpecification != null && model.SecondSpecification.Value.HasValue)
            {
                productDetail.SecondSpecificationId = model.SecondSpecification.Value.Value;
            }

            this.DbContext.ProductDetails.Add(productDetail);
            var result = false;

            try
            {
                this.DbContext.SaveChanges();
                model.ProductDetailId = productDetail.ProductDetailId;
                result = true;
            }
            catch { }

            return(result);
        }
        public ActionResult ProductDetail(int?id)
        {
            domainIndentifier = new DomainIdentifier(Request.Url.Host, Request.ServerVariables["SERVER_NAME"]);
            User User = domainIndentifier.GetUserRelatedDomain();

            UserID                   = User != null ? User.Id : 0;
            ViewBag.UserID           = UserID;
            Session["CurrentUserID"] = UserID;
            ProductDetailViewModel ProductDetailViewModel = new ProductDetailViewModel();
            var product = db.Products.FirstOrDefault(x => x.Id == id && x.UserID == UserID);

            if (product != null)
            {
                if (User.IsActive == false)
                {
                    return(HttpNotFound("User Not Active"));
                }
                ProductDetailViewModel.ProductDetail   = product;
                ProductDetailViewModel.RelatedProducts = db.Products.Where(x => x.Id == id).OrderByDescending(x => x.Id).Take(4).ToList();
                return(View(ProductDetailViewModel));
            }
            else
            {
                if (UserID != 0)
                {
                    return(HttpNotFound("Page is not designed"));
                }
                return(HttpNotFound());
            }
        }
        public bool?Update(int key, ProductDetailViewModel model, IDataSourceError error)
        {
            var productDetail = this.SingleOrDefault(key);

            if (productDetail == null)
            {
                return(null);
            }

            productDetail.FirstSpecificationId = model.FirstSpecification.Value;

            if (model.SecondSpecification != null && model.SecondSpecification.Value.HasValue)
            {
                productDetail.SecondSpecificationId = model.SecondSpecification.Value.Value;
            }

            productDetail.Price     = model.Price;
            productDetail.SafeStock = model.SafeStock;

            bool result = false;

            try
            {
                this.DbContext.SaveChanges();
                result = true;
            }
            catch { }

            return(result);
        }
        public ActionResult Details(int code)
        {
            Product      product      = db.Products.FirstOrDefault(current => current.Code == code);
            ProductGroup productGroup = db.ProductGroups.Where(p => p.Id == product.ProductGroupId && p.IsActive && !p.IsDeleted).FirstOrDefault();

            if (product == null)
            {
                return(HttpNotFound());
            }

            ProductDetailViewModel productDetail = new ProductDetailViewModel()
            {
                Product = product,
                //ProductGroup = productGroup,
                //  MainProductGroup = db.ProductGroups.Where(p => p.Id == productGroup.ParentId && p.IsActive && !p.IsDeleted).FirstOrDefault(),
                RelatedProducts = db.Products.Where(c => c.ProductGroupId == product.ProductGroupId && c.IsDeleted == false && c.IsActive && c.Id != product.Id)
                                  .OrderBy(c => c.Order).Take(4).ToList(),
                ProductImages   = db.ProductImages.Where(c => c.ProductId == product.Id && c.IsDeleted == false && c.IsActive).ToList(),
                ProductComments = db.ProductComments.Where(c => c.ProductId == product.Id && c.IsDeleted == false && c.IsActive).ToList()
            };

            ViewBag.Title = product.PageTitle;

            return(View(productDetail));
        }
示例#14
0
        /// <summary>显示产品详细内容的页面
        /// </summary>
        /// <param name="id">要显示的产品的ID</param>
        /// <returns>产品详细页面</returns>
        public ActionResult Detail(int id)
        {
            Cart     cart = (User as SolemartUser).Cart;
            CartItem item = cart.CartItems.FirstOrDefault(c => c.ProductID == id);

            if (item != null)
            {
                ViewBag.CartItem = item.Amount;
            }
            else
            {
                ViewBag.CartItem = 0;
            }

            string cacheKey = string.Format("product_{0}", id);
            ProductDetailViewModel model = null;

            if (CacheUtil.Exist(cacheKey))
            {
                model = CacheUtil.Get <ProductDetailViewModel>(cacheKey);
            }
            else
            {
                SaledProductItem        saleInfo = ProductManager.GetSaledProductByID(id);
                ProductItem             product  = ProductManager.GetProductWithBrandByID(id);
                List <ProductImageItem> images   = ProductManager.GetProductNoLogoImage(id);
                int commentCount = ProductManager.GetProductCommentCount(id);

                string remainAmountString = string.Empty;
                if (product.Unit == "斤")
                {
                    remainAmountString = string.Format("{0}", product.StockCount - product.ReserveCount);
                }
                else
                {
                    remainAmountString = string.Format("{0:d}", (int)(product.StockCount - product.ReserveCount));
                }
                model = new ProductDetailViewModel
                {
                    ProductID          = id,
                    ProductName        = product.ProductName,
                    ProductDescription = product.Description,
                    Price            = saleInfo.Price,
                    Unit             = product.Unit,
                    Discount         = saleInfo.Discount,
                    SpecialFlag      = saleInfo.SpecialFlag,
                    RemainAmount     = remainAmountString,
                    BrandDescription = product.Brand.Description,
                    BrandLogo        = product.Brand.BrandLogo,
                    BrandUrl         = product.Brand.BrandUrl,
                    BrandName        = product.Brand.ZhName,
                    CommentCount     = commentCount,
                    Images           = images
                };
                CacheUtil.Add <ProductDetailViewModel>(cacheKey, model, 600);
            }


            return(View(model));
        }
示例#15
0
        public async Task <ActionResult> Comment(ProductDetailViewModel model)
        {
            var comment = new Comment();

            try
            {
                if (!ModelState.IsValid)
                {
                    return(RedirectToAction("Single", new { id = model.ProductId }));
                }

                comment.Title      = model.CommentTitle;
                comment.Desciption = model.CommentDescription;
                comment.Email      = model.Email;
                comment.Name       = model.PersonName;
                comment.Price      = model.SurveyPrice;
                comment.Vakue      = model.SurveyValue;
                comment.ProductId  = model.ProductId;


                await _comment.CreateAsync(comment);

                ViewBag.CommentRelatedProduct = await _comment.GetAllByProductId((int)model.ProductId);

                return(RedirectToAction("Single", new { id = model.ProductId }));
            }
            catch (Exception e)
            {
                ModelState.AddModelError(string.Empty, e.Message);
                return(RedirectToAction("Single", new { id = model.ProductId }));
            }
        }
示例#16
0
        public IActionResult Aanpassen(ProductDetailViewModel vm)
        {
            Product product = productConverter.ViewModelToModel(vm);
            bool    check   = productRepository.Update(product);

            return(RedirectToAction("Index", new { vm.Id }));
        }
示例#17
0
        public ActionResult AddToOrderBag(int productID, int productOrderID, int?page, Guid?memberID)
        {
            if (!memberID.HasValue)
            {
                memberID = (Guid)Membership.GetUser().ProviderUserKey;
            }

            List <ProductDetail> productDetails = _entities.ProductDetails.Where(a => a.ProductID == productID && a.UpdateDate > SMCHSGManager.Controllers.ProductController.updateTime && (a.UnitsInStock == null || a.UnitsInStock != null && a.UnitsInStock > 0)).OrderBy(a => a.ID).ToList();

            List <string> productQuantities = GetProductDetailQuantities(productID, productOrderID, memberID.Value, productDetails);

            ViewData["productQuantities"] = productQuantities.ToArray();
            ViewData["productOrderID"]    = productOrderID;

            var viewModel = new ProductDetailViewModel
            {
                Sizes   = productDetails.Select(a => a.SizeDescription).ToList(),
                Product = _entities.Products.Single(a => a.ID == productID),
            };

            viewModel.ProductDiscount = viewModel.Product.ProductDiscounts.Where(a => a.DateTo >= DateTime.Today).FirstOrDefault();
            viewModel.ReadPrice       = GetProductPriceAfterDiscount(viewModel.Product, 1);

            if (viewModel.Product.ProductUploadFiles.Count == 0)
            {
                UploadFile        upload            = _entities.UploadFiles.Single(a => a.ID == 1276);
                ProductUploadFile productUploadFile = new ProductUploadFile();
                productUploadFile.UploadFile = upload;
                viewModel.Product.ProductUploadFiles.Add(productUploadFile);
            }

            return(View(viewModel));
        }
示例#18
0
 public string DeleteProductDetail(ProductDetailViewModel productDeails)
 {
     try
     {
         OperationsStatusViewModel OperationsStatusViewModelObj = null;
         if ((productDeails.ID > 0) && (productDeails.ProductID > 0))
         {
             OperationsStatusViewModelObj = Mapper.Map <OperationsStatus, OperationsStatusViewModel>(_productBusiness.DeleteProductsDetails(productDeails.ID, productDeails.ProductID));
             if (OperationsStatusViewModelObj.StatusCode == 1)
             {
                 return(JsonConvert.SerializeObject(new { Result = "OK", Record = OperationsStatusViewModelObj }));
             }
             else
             {
                 return(JsonConvert.SerializeObject(new { Result = "Error", Record = OperationsStatusViewModelObj }));
             }
         }
         else
         {
             return(JsonConvert.SerializeObject(new { Result = "OK", Record = OperationsStatusViewModelObj }));
         }
     }
     catch (Exception ex)
     {
         return(JsonConvert.SerializeObject(new { Result = "ERROR", Message = ex.Message }));
     }
 }
示例#19
0
        /// <summary>
        /// Render giao diện xem chi tiết sản phẩm
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Detail(int id)
        {
            isAdminLogged();
            var pro = _productService.GetProduct(id);

            if (pro != null)
            {
                var model = new ProductDetailViewModel()
                {
                    IdProduct       = id,
                    ProductName     = pro.ProductName,
                    Price           = pro.Price,
                    IsDisabled      = pro.IsDisabled.GetValueOrDefault(),
                    ProductType     = pro.ProductType.GetValueOrDefault(),
                    Unit            = pro.Unit.GetValueOrDefault(),
                    Quantity        = pro.Quantity.GetValueOrDefault(),
                    description_log = null
                };
                model.ProductTypes = _productTypeService.GetAllProductType();
                model.Units        = _unitService.GetAllUnit();
                ViewBag.Parent     = "Quản lý sản phẩm  >  Tìm kiếm sản phẩm";
                ViewBag.Child      = "Chi tiết sản phẩm";
                return(View(model));
            }
            else
            {
                return(Redirect("List"));
            }
        }
示例#20
0
        public ActionResult Detail(int?id)
        {
            ProductDetailViewModel model = new ProductDetailViewModel();

            model.product = db.Products.Find(id);
            var cate = db.Categories.Find(model.product.CategoryID);

            model.CategoryName = cate.CategoryName;
            model.CategoryLink = "/san-pham/" + cate.SEOUrlRewrite + "-" + cate.CategoryID;
            model.listimage    = db.ProductImages.Where(q => q.ProductID == id).Select(s => new ListImage {
                ImageURL = s.URLImage,
                URLThumb = s.ImagesThumb
            }).ToList();
            model.relate = db.Products.Where(q => q.IsActive == true && q.ProductID != id && q.IsProduct == true && q.CategoryID == cate.CategoryID).ToList();
            model.upsell = db.Products.Where(q => q.IsActive == true && q.ProductID != id && q.IsProduct == true).ToList();

            ListImage l = new ListImage();

            l.URLThumb = model.product.ImagesThumb;
            l.ImageURL = model.product.Images;

            model.listimage.Add(l);

            AddList(model.product);

            return(View(model));
        }
示例#21
0
        //
        // GET: /Product/Detail
        public ActionResult Detail(int productID)
        {
            ProductDetailViewModel model = new ProductDetailViewModel();
            var product = db.Products.FirstOrDefault(p => p.ProductID == productID);

            if (product != null)
            {
                var subCategory = db.SubCategories.FirstOrDefault(sc => sc.SubCategoryID == product.SubCategoryID);
                var category    = db.Categories.FirstOrDefault(c => c.CategoryID == subCategory.CategoryID);
                var imageUrl    = (from i in db.ImageUrls
                                   where i.ProductID == productID
                                   select i).ToList();
                List <string> lstImages = new List <string>();
                if (imageUrl != null)
                {
                    foreach (ImageUrl img in imageUrl)
                    {
                        lstImages.Add(img.Url);
                    }
                }

                model.Describe    = product.Describe;
                model.Price       = product.Price;
                model.ProductName = product.ProductName;
                model.SubCategory = subCategory.SubCategoryName;
                model.Category    = category.CategoryName;
                model.ListImages  = lstImages;
            }

            return(View(model));
        }
示例#22
0
// ====================================================
//                 SHOW
// =====================================================



        public IActionResult Show(string id)
        {
            string path = @"C:\Users\bethh\source\repos\PflStoreProject\PflStoreProject\SampleData\productDetail.json";
            // read all content to buffer and save as a string
            string textAsStr = System.IO.File.ReadAllText(path);
            // interpret the ENTIRE string as a Json object that can be mapped to csharp

            // ===============================================================================
            JObject queryable = JObject.Parse(textAsStr);

            if (queryable["results"]["errors"].Count() > 1)
            {
                IList <JToken> errors     = queryable["results"]["errors"].Children().ToList();
                List <Error>   errorsList = new List <Error>();
                foreach (JToken err in errors)
                {
                    Error error = err.ToObject <Error>();
                    errorsList.Add(error);
                }
                return(View("Errors", errorsList));
            }
            else
            {
                // extract the 'data' object and set to list to deserialize as collection
                ProductDetailViewModel results = queryable["results"]["data"].ToObject <ProductDetailViewModel>();

                return(View(results));
            }
        }
        public IActionResult ProductDetail(int id)
        {
            ViewData["BodyClass"] = "product-page";
            var getSizeByProductId = _productReceiptService.GetReceiptDetailsByProductId(id).Select(x => new SelectListItem()
            {
                Text  = x.Size.Name,
                Value = x.SizeId.ToString()
            }).ToList();
            var model = new ProductDetailViewModel
            {
                Product         = _productService.GetById(id),
                RelatedProducts = _productService.GetRelatedProducts(id, 9),
                UpsellProducts  = _productService.GetUpsellProducts(9),
                ProductImages   = _productService.GetImages(id),
                Tags            = _productService.GetProductTags(id),
                Sizes           = getSizeByProductId,
                ViewCount       = _productService.UpdateViewCount(id)
            };

            if (getSizeByProductId.Count > 0)
            {
                model.CheckAvailability = _productService.CheckAvailability(id, int.Parse(getSizeByProductId[0].Value))
                    ? Status.Active
                    : Status.InActive;
            }
            else
            {
                model.CheckAvailability = Status.InActive;
            }
            model.ProductCategory = _productCategoryService.GetById(model.Product.CategoryId);
            return(View(model));
        }
        public ActionResult Detail(int?id)
        {
            var imgPath = Constants.ImagePath + "/";

            if (!id.HasValue)
            {
                TempData[Constants.NotifyMessage] = string.Format(Resource.MsgIsNotFound, "Product item");
                return(RedirectToAction("index"));
            }
            var entity = _productService.FindById(id.Value);

            if (entity == null || entity.Status == (int)Constants.EnumProductStatus.OutOfStock)
            {
                TempData[Constants.NotifyMessage] = string.Format(Resource.MsgIsNotFound, "Product item");
                return(RedirectToAction("index"));
            }
            var imgProducts = entity.Images.Any() ? entity.Images.Select(a => imgPath + a.Name).ToList() : new List <string>();
            var model       = new ProductDetailViewModel()
            {
                Id          = entity.Id,
                Price       = entity.Price.HasValue ? entity.Price.Value : 0,
                Quantity    = 1,
                Description = entity.Description,
                ProductName = entity.Name,
                Status      = Constants.ProductStatusDictionary[entity.Status],
                Imgs        = imgProducts.Any() ? imgProducts.ToArray() : null,
                MainImg     =
                    entity.Images.Any(a => a.Main == true)
                        ? imgPath + entity.Images.First(a => a.Main == true).Name
                        : imgProducts.FirstOrDefault()
            };

            return(View(model));
        }
        public IActionResult Details(int id)
        {
            try
            {
                var product = _mapper.Map <ProductViewModel>(_productService.GetProduct(id));

                if (product == null)
                {
                    TempData["InfoMessage"] = AppStrings.ProductNotFoundMessage;
                    return(RedirectToAction("Index", "Home"));
                }

                var viewModel = new ProductDetailViewModel
                {
                    Product        = product,
                    ProductReviews = product.ProductReviews.Select(x => _mapper.Map <ProductReviewViewModel>(x))
                };

                return(View("Details", viewModel));
            }
            catch (Exception ex)
            {
                _logger.LogMessage(ex.Message);

                TempData["ErrorMessage"] = AppStrings.GenericErrorMsg;
                return(RedirectToAction("Index", "Home"));
            }
        }
        // GET: Products/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var product = await _context.Product
                          .Include(p => p.ProductType)
                          .Include(p => p.User)
                          .Include(p => p.OrderProducts)
                          .FirstOrDefaultAsync(m => m.ProductId == id);

            if (product == null)
            {
                return(NotFound());
            }
            var productDetail = new ProductDetailViewModel()
            {
                Product   = product,
                Inventory = product.Quantity - product.OrderProducts.Count()
            };

            return(View(productDetail));
        }
        public IActionResult ProductDetail(int id)
        {
            ViewData["BodyClass"] = "product-page";
            var model = new ProductDetailViewModel
            {
                Product         = _productService.GetById(id),
                RelatedProducts = _productService.GetRelatedProducts(id, 9),
                UpsellProducts  = _productService.GetUpsellProducts(6),
                ProductImages   = _productService.GetImages(id),
                Tags            = _productService.GetProductTags(id),
                //Sizes = _billService.GetSizes().Select(x => new SelectListItem()
                //{
                //    Text = x.Name,
                //    Value = x.Id.ToString()
                //}).ToList()
                Sizes = _productService.GetQuantities(id).Select(x => new SelectListItem()
                {
                    Text  = x.Size.Name,
                    Value = x.SizeId.ToString()
                }).ToList()
            };

            model.ProductCategory = _productCategoryService.GetById(model.Product.CategoryId);
            return(View(model));
        }
示例#28
0
        public ActionResult DetailsLottery()
        {
            Product product = db.Products.FirstOrDefault(c => c.Code == 50);

            if (product == null)
            {
                return(Redirect("/"));
            }

            ProductDetailViewModel productDetail = new ProductDetailViewModel()
            {
                Product = product,
                SidebarProductGroups = db.ProductGroups.Where(c => c.ParentId != null && c.IsDelete == false).ToList(),
                Menu           = menu.ReturnMenuTours(),
                Footer         = menu.ReturnFooter(),
                MenuBlogGroups = menu.ReturnBlogGroups(),
            };

            if (string.IsNullOrEmpty(product.ProductGroup.HeaderImageUrl))
            {
                ViewBag.headerImg = "/Images/header1.jpg";
            }
            else
            {
                ViewBag.headerImg = product.ProductGroup.HeaderImageUrl;
            }


            ViewBag.VisaTypeId = new SelectList(db.VisaTypes.Where(c => c.IsDelete == false), "Id", "Title");
            ProductDetailPostViewModel page = new ProductDetailPostViewModel();

            ViewData.Add("Page", page);
            ViewBag.Code = product.Code;
            return(View(productDetail));
        }
示例#29
0
        public async Task ShowProduct(Product product)
        {
            var productViewModel = new ProductDetailViewModel(product);

            App.ProductDetailViewModel = productViewModel;
            await _navi.PushAsync(new ProductDetailPage());
        }
示例#30
0
        public async Task <IActionResult> ProductDetail(string productId)
        {
            var result = new ProductDetailViewModel();

            try
            {
                result.Product = await this.xStoreService.GetProductByIdAsync(productId);
            }
            catch (Exception ex)
            {
                var err = new ErrorViewModel {
                    ErrorMessage = ex.Message, ErrorLevel = ErrorLevel.Serious
                };
                return(PartialView("_ErrorMessage", err));
            }
            try
            {
                result.Recommendations = await this.xStoreService.GetProductRecommendationsByIdAsync(productId);
            }
            catch (Exception ex)
            {
                string error = ex.Message;
                result.Recommendations = new List <Recommendation>();
            }
            return(PartialView("_ProductDetail", result));
        }
 public static ProductDetailViewModel CreateProductDetailViewModel(global::System.Guid id)
 {
     ProductDetailViewModel productDetailViewModel = new ProductDetailViewModel();
     productDetailViewModel.Id = id;
     return productDetailViewModel;
 }
 public void AddToProductDetailViewModels(ProductDetailViewModel productDetailViewModel)
 {
     base.AddObject("ProductDetailViewModels", productDetailViewModel);
 }
        public void TestProductDetailModel()
        {
            ProductDTO dto = new ProductDTO() {Id = 1, Name = "FakeProduct", Category = "FakeCategory", ListUnitPrice = 123.21m, QuantityPerUnit = 100.2, Version = 1};

            ProductDetailViewModel productDetailViewModel = new ProductDetailViewModel(dto, false);
            productDetailViewModel.Service = serviceFacade;

            Expect.Once.On(serviceFacade).Method("StoreProduct").With(dto).Will(Return.Value(1));
            productDetailViewModel.SaveCommand.Command.Execute(null);

            Assert.AreEqual(dto, productDetailViewModel.Model);
            Assert.AreEqual(Strings.ProductDetailViewModel_DisplayName, productDetailViewModel.DisplayName);
        }
示例#34
0
 /// <summary>
 /// Create a new ProductDetailViewModel object.
 /// </summary>
 /// <param name="ID">Initial value of Id.</param>
 /// <param name="description">Initial value of Description.</param>
 public static ProductDetailViewModel CreateProductDetailViewModel(global::System.Guid ID, string description)
 {
     ProductDetailViewModel productDetailViewModel = new ProductDetailViewModel();
     productDetailViewModel.Id = ID;
     productDetailViewModel.Description = description;
     return productDetailViewModel;
 }
 protected void NavigateTo(ProductDetailViewModel.Message message)
 {
     ShowViewModel<ProductDetailViewModel>(message);
 }