public async Task <IActionResult> Details(long id) { Product p = await context.Products .Include(p => p.Category) .Include(p => p.Supplier) .FirstOrDefaultAsync(p => p.ProductId == id); return(View("ProductEditor", ProductViewModelFactory.Details(p))); }
[TestMethod] public void CreateTest() { var o = GetRandom.Object <ProductObject>(); var v = ProductViewModelFactory.Create(o); Assert.AreEqual(v.Id, o.Id); Assert.AreEqual(v.Name, o.Name); Assert.AreEqual(v.Description, o.Description); Assert.AreEqual(v.Category, o.Category); Assert.AreEqual(v.BiddingEndDate, ProductViewModelFactory.timeLeft(o.BiddingEndDate)); }
public CatalogController(InventoryManager inventoryManager, ContactFactory contactFactory, ProductViewModelFactory productViewModelFactory, AccountManager accountManager, CatalogManager catalogManager, GiftCardManager giftCardManager, PricingManager pricingManager, CartManager cartManager, CommerceUserContext commerceUserContext, CatalogItemContext catalogItemContext, CatalogUrlService catalogUrlRepository, StorefrontContext storefrontContext, CategoryViewModelFactory categoryViewModelFactory, GetChildProductsService getChildProductsService) { InventoryManager = inventoryManager; ProductViewModelFactory = productViewModelFactory; CatalogManager = catalogManager; GiftCardManager = giftCardManager; CommerceUserContext = commerceUserContext; CatalogItemContext = catalogItemContext; StorefrontContext = storefrontContext; CategoryViewModelFactory = categoryViewModelFactory; GetChildProductsService = getChildProductsService; }
public ActionResult ProductRating() { if (CatalogManager.CatalogContext == null) { return(Context.PageMode.IsExperienceEditor ? (ActionResult)this.InfoMessage(InfoMessage.Error("This rendering cannot be shown without a valid catalog context.")) : new EmptyResult()); } if (!ProductViewModelFactory.IsValid(RenderingContext.Current.Rendering.Item)) { return(Context.PageMode.IsExperienceEditor ? (ActionResult)this.InfoMessage(InfoMessage.Error("Invalid datasource. Please pick a product.")) : new EmptyResult()); } var model = ProductViewModelFactory.Create(RenderingContext.Current.Rendering.Item); return(View(model)); }
private IEnumerable <RelationshipViewModel> GroupRelationshipsByDescription(IEnumerable <CatalogRelationshipInformation> productRelationshipInfoList) { var relationshipGroups = new Dictionary <string, RelationshipViewModel>(StringComparer.OrdinalIgnoreCase); if (productRelationshipInfoList != null) { foreach (var relationshipInfo in productRelationshipInfoList) { var relationshipDescription = string.IsNullOrWhiteSpace(relationshipInfo.RelationshipDescription) ? GetRelationshipName(relationshipInfo.RelationshipName) : relationshipInfo.RelationshipDescription; RelationshipViewModel relationshipModel; if (!relationshipGroups.TryGetValue(relationshipDescription, out relationshipModel)) { relationshipModel = new RelationshipViewModel { Name = relationshipInfo.RelationshipName, Description = relationshipDescription }; relationshipGroups[relationshipDescription] = relationshipModel; } var targetItemId = new ID(relationshipInfo.ToItemExternalId); var targetItem = Context.Database.GetItem(targetItemId); var productModel = ProductViewModelFactory.Create(targetItem); relationshipModel.ChildProducts.Add(productModel); } } if (relationshipGroups.Count <= 0) { return(relationshipGroups.Values); } var productViewModelList = relationshipGroups.Values.SelectMany(v => v.ChildProducts).ToArray(); if (!productViewModelList.Any()) { return(relationshipGroups.Values); } CatalogManager.GetProductBulkPrices(productViewModelList); InventoryManager.GetProductsStockStatusForList(productViewModelList); return(relationshipGroups.Values); }
public async Task <IActionResult> Create([FromForm] Product product) { if (ModelState.IsValid) { // reset these properties to ensure // - primary key for productId is allocated by database server // - and to prevent EFCore dealing with related data here product.ProductId = default; product.Category = default; product.Supplier = default; context.Products.Add(product); await context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View("ProductEditor", ProductViewModelFactory.Create(product, _categories, _suppliers))); }
public async Task <IActionResult> Edit([FromForm] Product product) { //var errors = ModelState // .Where(x => x.Value.Errors.Count > 0) // .Select(x => new { x.Key, x.Value.Errors }) // .ToArray(); if (ModelState.IsValid) { product.Category = default; product.Supplier = default; context.Products.Update(product); await context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View("ProductEditor", ProductViewModelFactory.Edit(product, _categories, _suppliers))); }
public void Process(GetPageMetadataArgs args) { if (CatalogItemContext.IsCategory) { var category = CategoryViewModelFactory.Create(CatalogItemContext.Current.Item); args.Metadata.PageTitle = category.Title; args.Metadata.Description = StringUtil.RemoveTags(category.Description); } if (CatalogItemContext.IsProduct) { var product = ProductViewModelFactory.Create(CatalogItemContext.Current.Item); args.Metadata.PageTitle = product.Title; args.Metadata.Description = StringUtil.RemoveTags(product.Description); foreach (var tag in product.Tags) { args.Metadata.KeywordsList.Add(tag); } } }
public ActionResult VisitedProductDetailsPage() { if (CatalogManager.CatalogContext == null || StorefrontContext.Current == null) { return(Context.PageMode.IsExperienceEditor ? (ActionResult)this.InfoMessage(InfoMessage.Error("This rendering cannot be shown without a valid catalog context.")) : new EmptyResult()); } if (!ProductViewModelFactory.IsValid(RenderingContext.Current.Rendering.Item)) { return(Context.PageMode.IsExperienceEditor ? (ActionResult)this.InfoMessage(InfoMessage.Error("Invalid datasource. Please pick a product.")) : new EmptyResult()); } var model = ProductViewModelFactory.Create(RenderingContext.Current.Rendering.Item); if (model != null) { CatalogManager.VisitedProductDetailsPage(model.ProductId, model.ProductName, model.ParentCategoryId, model.ParentCategoryName); } return(new EmptyResult()); }
public ProductSearchResultFormatter(ProductViewModelFactory productViewModelFactory) { ProductViewModelFactory = productViewModelFactory; }
public SetProductCatalogMetadata(CatalogItemContext catalogItemContext, CategoryViewModelFactory categoryViewModelFactory, ProductViewModelFactory productViewModelFactory) { CatalogItemContext = catalogItemContext; CategoryViewModelFactory = categoryViewModelFactory; ProductViewModelFactory = productViewModelFactory; }
public virtual Task <ProductViewModel> GetProductViewModelAsync(GetProductParam param) { return(ProductViewModelFactory.GetProductViewModel(param)); }
public async Task <IActionResult> Edit(long id) { Product p = await context.Products.FirstOrDefaultAsync(p => p.ProductId == id); return(View("ProductEditor", ProductViewModelFactory.Edit(p, _categories, _suppliers))); }
public ProductsController(ProductViewModelFactory viewModelFactory, IProductRepository productRepository) { _viewModelFactory = viewModelFactory; _productRepository = productRepository; }