本文整理汇总了C#中Nop.Admin.Models.Catalog.ProductModel类的典型用法代码示例。如果您正苦于以下问题:C# ProductModel类的具体用法?C# ProductModel怎么用?C# ProductModel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ProductModel类属于Nop.Admin.Models.Catalog命名空间,在下文中一共展示了ProductModel类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateIB
public ActionResult CreateIB()
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
return AccessDeniedView();
var model = new ProductModel();
PrepareProductModel(model, null, true, true);
AddLocales(_languageService, model.Locales);
PrepareAclModel(model, null, false);
PrepareStoresMappingModel(model, null, false);
return View(model);
}
示例2: CreateIB
public ActionResult CreateIB()
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
return AccessDeniedView();
var model = new ProductModel();
PrepareProductModel(model, null, true, true);
AddLocales(_languageService, model.Locales);
PrepareAclModel(model, null, false);
PrepareStoresMappingModel(model, null, false);
var styles = _customDataService.GetCustomDataByKeyGroup(CustomDataKeyGroupNames.Style);
var materials = _customDataService.GetCustomDataByKeyGroup(CustomDataKeyGroupNames.Material);
model.Styles = (from st in styles
select new SelectListItem { Text = st.Value, Value = st.Key }).OrderBy(v => v.Value).ToList();
model.Materials = (from cd in materials
select new SelectListItem { Text = cd.Value, Value = cd.Key }).OrderBy(v => v.Value).ToList();
var categoriesModel = new List<CategoryModel>();
//all categories
var allCategories = _categoryService.GetAllCategories();
foreach (var c in allCategories)
{
//generate full category name (breadcrumb)
string categoryBreadcrumb = "";
var breadcrumb = c.GetCategoryBreadCrumb(allCategories, _aclService, _storeMappingService);
for (int i = 0; i <= breadcrumb.Count - 1; i++)
{
categoryBreadcrumb += breadcrumb[i].GetLocalized(x => x.Name);
if (i != breadcrumb.Count - 1)
categoryBreadcrumb += " >> ";
}
categoriesModel.Add(new CategoryModel
{
Id = c.Id,
Breadcrumb = categoryBreadcrumb
});
}
model.AvailableCategories = categoriesModel.OrderBy(v => v.Breadcrumb).Select(c=> new SelectListItem { Text = c.Breadcrumb, Value = c.Id.ToString() }).ToList();
if (_workContext.CurrentVendor!=null)
model.VendorId = _workContext.CurrentVendor.Id;
return View(model);
}
示例3: OnActionExecuting
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
if ((filterContext.RouteData.Values["controller"].ToString() == "Home") &&
filterContext.RouteData.Values["action"].ToString() == "Index" &&
filterContext.RouteData.Values["area"] == null)
{
string host = (((System.Web.HttpRequestWrapper)((System.Web.HttpContextWrapper)filterContext.RequestContext.HttpContext).Request).Url).Host;
if (host.Split('.')[0] == "jobs")
{
ProductModel viewModel = new ProductModel();
//Here set all the properties of your viewModel such as your exception message
filterContext.Controller.ViewData.Model = viewModel;
filterContext.Result = new ViewResult { ViewName = "Login", ViewData = new ViewDataDictionary(viewModel) };
//filterContext.ExceptionHandled = true;
}
}
// Create object parameter.
//filterContext.ActionParameters["person"] = new Person("John", "Smith");
//_vendorService = EngineContext.Current.Resolve<IIndVendorService>();
//HttpCookie vendor_email_cookie = filterContext.HttpContext.Request.Cookies.Get("current_vendor_email");
//HttpCookie vendor_password_cookie = filterContext.HttpContext.Request.Cookies.Get("current_vendor_password");
//if (!_vendorService.LoginCookiesAreValid(vendor_email_cookie, vendor_password_cookie))
//{
// RedirectToLoginPage(filterContext);
//}
//else
//{
// if (!_vendorService.IsVendorAuthenticated(vendor_email_cookie.Value, vendor_password_cookie.Value))
// {
// RedirectToLoginPage(filterContext);
// }
// else
// {
// filterContext.Controller.ViewBag.CurrentVendorEmail = vendor_email_cookie.Value;
// }
//}
}
示例4: CrossSellProductAddPopup
public ActionResult CrossSellProductAddPopup(string btnId, string formId, ProductModel.AddCrossSellProductModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
return AccessDeniedView();
if (model.SelectedProductIds != null)
{
foreach (int id in model.SelectedProductIds)
{
var product = _productService.GetProductById(id);
if (product != null)
{
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && product.VendorId != _workContext.CurrentVendor.Id)
continue;
var existingCrossSellProducts = _productService.GetCrossSellProductsByProductId1(model.ProductId);
if (existingCrossSellProducts.FindCrossSellProduct(model.ProductId, id) == null)
{
_productService.InsertCrossSellProduct(
new CrossSellProduct
{
ProductId1 = model.ProductId,
ProductId2 = id,
});
}
}
}
}
//a vendor should have access only to his products
model.IsLoggedInAsVendor = _workContext.CurrentVendor != null;
ViewBag.RefreshPage = true;
ViewBag.btnId = btnId;
ViewBag.formId = formId;
return View(model);
}
示例5: CopyProduct
public ActionResult CopyProduct(ProductModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
return AccessDeniedView();
var copyModel = model.CopyProductModel;
try
{
var originalProduct = _productService.GetProductById(copyModel.Id);
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && originalProduct.VendorId != _workContext.CurrentVendor.Id)
return RedirectToAction("List");
var newProduct = _copyProductService.CopyProduct(originalProduct,
copyModel.Name, copyModel.Published, copyModel.CopyImages);
SuccessNotification("The product has been copied successfully");
return RedirectToAction("Edit", new { id = newProduct.Id });
}
catch (Exception exc)
{
ErrorNotification(exc.Message);
return RedirectToAction("Edit", new { id = copyModel.Id });
}
}
示例6: AssociatedProductUpdate
public ActionResult AssociatedProductUpdate(ProductModel.AssociatedProductModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
return AccessDeniedView();
var associatedProduct = _productService.GetProductById(model.Id);
if (associatedProduct == null)
throw new ArgumentException("No associated product found with the specified id");
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && associatedProduct.VendorId != _workContext.CurrentVendor.Id)
{
return Content("This is not your product");
}
associatedProduct.DisplayOrder = model.DisplayOrder;
_productService.UpdateProduct(associatedProduct);
return new NullJsonResult();
}
示例7: UpdateLocales
protected virtual void UpdateLocales(ProductAttributeValue pav, ProductModel.ProductAttributeValueModel model)
{
foreach (var localized in model.Locales)
{
_localizedEntityService.SaveLocalizedValue(pav,
x => x.Name,
localized.Name,
localized.LanguageId);
}
}
示例8: SaveProductWarehouseInventory
protected virtual void SaveProductWarehouseInventory(Product product, ProductModel model)
{
if (product == null)
throw new ArgumentNullException("product");
if (model.ManageInventoryMethodId != (int)ManageInventoryMethod.ManageStock)
return;
if (!model.UseMultipleWarehouses)
return;
var warehouses = _shippingService.GetAllWarehouses();
foreach (var warehouse in warehouses)
{
//parse stock quantity
int stockQuantity = 0;
foreach (string formKey in this.Request.Form.AllKeys)
if (formKey.Equals(string.Format("warehouse_qty_{0}", warehouse.Id), StringComparison.InvariantCultureIgnoreCase))
{
int.TryParse(this.Request.Form[formKey], out stockQuantity);
break;
}
//parse reserved quantity
int reservedQuantity = 0;
foreach (string formKey in this.Request.Form.AllKeys)
if (formKey.Equals(string.Format("warehouse_reserved_{0}", warehouse.Id), StringComparison.InvariantCultureIgnoreCase))
{
int.TryParse(this.Request.Form[formKey], out reservedQuantity);
break;
}
//parse "used" field
bool used = false;
foreach (string formKey in this.Request.Form.AllKeys)
if (formKey.Equals(string.Format("warehouse_used_{0}", warehouse.Id), StringComparison.InvariantCultureIgnoreCase))
{
int tmp;
int.TryParse(this.Request.Form[formKey], out tmp);
used = tmp == warehouse.Id;
break;
}
var existingPwI = product.ProductWarehouseInventory.FirstOrDefault(x => x.WarehouseId == warehouse.Id);
if (existingPwI != null)
{
if (used)
{
//update existing record
existingPwI.StockQuantity = stockQuantity;
existingPwI.ReservedQuantity = reservedQuantity;
_productService.UpdateProduct(product);
}
else
{
//delete. no need to store record for qty 0
_productService.DeleteProductWarehouseInventory(existingPwI);
}
}
else
{
if (used)
{
//no need to insert a record for qty 0
existingPwI = new ProductWarehouseInventory
{
WarehouseId = warehouse.Id,
ProductId = product.Id,
StockQuantity = stockQuantity,
ReservedQuantity = reservedQuantity
};
product.ProductWarehouseInventory.Add(existingPwI);
_productService.UpdateProduct(product);
}
}
}
}
示例9: ProductAttributeValidationRulesPopup
public ActionResult ProductAttributeValidationRulesPopup(string btnId, string formId, ProductModel.ProductAttributeMappingModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
return AccessDeniedView();
var productAttributeMapping = _productAttributeService.GetProductAttributeMappingById(model.Id);
if (productAttributeMapping == null)
//No attribute value found with the specified id
return RedirectToAction("List", "Product");
var product = _productService.GetProductById(productAttributeMapping.ProductId);
if (product == null)
throw new ArgumentException("No product found with the specified id");
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && product.VendorId != _workContext.CurrentVendor.Id)
return RedirectToAction("List", "Product");
if (ModelState.IsValid)
{
productAttributeMapping.ValidationMinLength = model.ValidationMinLength;
productAttributeMapping.ValidationMaxLength = model.ValidationMaxLength;
productAttributeMapping.ValidationFileAllowedExtensions = model.ValidationFileAllowedExtensions;
productAttributeMapping.ValidationFileMaximumSize = model.ValidationFileMaximumSize;
productAttributeMapping.DefaultValue = model.DefaultValue;
_productAttributeService.UpdateProductAttributeMapping(productAttributeMapping);
ViewBag.RefreshPage = true;
ViewBag.btnId = btnId;
ViewBag.formId = formId;
return View(model);
}
//If we got this far, something failed, redisplay form
model.ValidationRulesAllowed = productAttributeMapping.ValidationRulesAllowed();
model.AttributeControlTypeId = productAttributeMapping.AttributeControlTypeId;
return View(model);
}
示例10: ProductAttributeMappingUpdate
public ActionResult ProductAttributeMappingUpdate(ProductModel.ProductAttributeMappingModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
return AccessDeniedView();
var productAttributeMapping = _productAttributeService.GetProductAttributeMappingById(model.Id);
if (productAttributeMapping == null)
throw new ArgumentException("No product attribute mapping found with the specified id");
var product = _productService.GetProductById(productAttributeMapping.ProductId);
if (product == null)
throw new ArgumentException("No product found with the specified id");
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && product.VendorId != _workContext.CurrentVendor.Id)
return Content("This is not your product");
productAttributeMapping.ProductAttributeId = model.ProductAttributeId;
productAttributeMapping.TextPrompt = model.TextPrompt;
productAttributeMapping.IsRequired = model.IsRequired;
productAttributeMapping.AttributeControlTypeId = model.AttributeControlTypeId;
productAttributeMapping.DisplayOrder = model.DisplayOrder;
_productAttributeService.UpdateProductAttributeMapping(productAttributeMapping);
return new NullJsonResult();
}
示例11: ProductAttributeMappingInsert
public ActionResult ProductAttributeMappingInsert(ProductModel.ProductAttributeMappingModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
return AccessDeniedView();
var product = _productService.GetProductById(model.ProductId);
if (product == null)
throw new ArgumentException("No product found with the specified id");
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && product.VendorId != _workContext.CurrentVendor.Id)
{
return Content("This is not your product");
}
//insert mapping
var productAttributeMapping = new ProductAttributeMapping
{
ProductId = model.ProductId,
ProductAttributeId = model.ProductAttributeId,
TextPrompt = model.TextPrompt,
IsRequired = model.IsRequired,
AttributeControlTypeId = model.AttributeControlTypeId,
DisplayOrder = model.DisplayOrder
};
_productAttributeService.InsertProductAttributeMapping(productAttributeMapping);
//predefined values
var predefinedValues = _productAttributeService.GetPredefinedProductAttributeValues(model.ProductAttributeId);
foreach (var predefinedValue in predefinedValues)
{
var pav = new ProductAttributeValue
{
ProductAttributeMappingId = productAttributeMapping.Id,
AttributeValueType = AttributeValueType.Simple,
Name = predefinedValue.Name,
PriceAdjustment = predefinedValue.PriceAdjustment,
WeightAdjustment = predefinedValue.WeightAdjustment,
Cost = predefinedValue.Cost,
IsPreSelected = predefinedValue.IsPreSelected,
DisplayOrder = predefinedValue.DisplayOrder
};
_productAttributeService.InsertProductAttributeValue(pav);
//locales
var languages = _languageService.GetAllLanguages(true);
//localization
foreach (var lang in languages)
{
var name = predefinedValue.GetLocalized(x => x.Name, lang.Id, false, false);
if (!String.IsNullOrEmpty(name))
_localizedEntityService.SaveLocalizedValue(pav, x => x.Name, name, lang.Id);
}
}
return new NullJsonResult();
}
示例12: ProductAttributeCombinationUpdate
public ActionResult ProductAttributeCombinationUpdate(ProductModel.ProductAttributeCombinationModel model)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
return AccessDeniedView();
var combination = _productAttributeService.GetProductAttributeCombinationById(model.Id);
if (combination == null)
throw new ArgumentException("No product attribute combination found with the specified id");
var product = _productService.GetProductById(combination.ProductId);
if (product == null)
throw new ArgumentException("No product found with the specified id");
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && product.VendorId != _workContext.CurrentVendor.Id)
return Content("This is not your product");
combination.StockQuantity = model.StockQuantity;
combination.AllowOutOfStockOrders = model.AllowOutOfStockOrders;
combination.Sku = model.Sku;
combination.ManufacturerPartNumber = model.ManufacturerPartNumber;
combination.Gtin = model.Gtin;
combination.OverriddenPrice = model.OverriddenPrice;
combination.NotifyAdminForQuantityBelow = model.NotifyAdminForQuantityBelow;
_productAttributeService.UpdateProductAttributeCombination(combination);
return new NullJsonResult();
}
示例13: Edit
public ActionResult Edit(ProductModel model, bool continueEditing)
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
return AccessDeniedView();
var product = _productService.GetProductById(model.Id);
if (product == null || product.Deleted)
//No product found with the specified id
return RedirectToAction("List");
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null && product.VendorId != _workContext.CurrentVendor.Id)
return RedirectToAction("List");
if (ModelState.IsValid)
{
//a vendor should have access only to his products
if (_workContext.CurrentVendor != null)
{
model.VendorId = _workContext.CurrentVendor.Id;
}
//vendors cannot edit "Show on home page" property
if (_workContext.CurrentVendor != null && model.ShowOnHomePage != product.ShowOnHomePage)
{
model.ShowOnHomePage = product.ShowOnHomePage;
}
var prevStockQuantity = product.GetTotalStockQuantity();
//product
product = model.ToEntity(product);
product.UpdatedOnUtc = DateTime.UtcNow;
product.ProductObservations = model.ProductObservation;
_productService.UpdateProduct(product);
//search engine name
model.SeName = product.ValidateSeName(model.SeName, product.Name, true);
_urlRecordService.SaveSlug(product, model.SeName, 0);
//locales
UpdateLocales(product, model);
//tags
SaveProductTags(product, ParseProductTags(model.ProductTags));
//warehouses
SaveProductWarehouseInventory(product, model);
//ACL (customer roles)
SaveProductAcl(product, model);
//Stores
SaveStoreMappings(product, model);
//picture seo names
UpdatePictureSeoNames(product);
//discounts
var allDiscounts = _discountService.GetAllDiscounts(DiscountType.AssignedToSkus, showHidden: true);
foreach (var discount in allDiscounts)
{
if (model.SelectedDiscountIds != null && model.SelectedDiscountIds.Contains(discount.Id))
{
//new discount
if (product.AppliedDiscounts.Count(d => d.Id == discount.Id) == 0)
product.AppliedDiscounts.Add(discount);
}
else
{
//remove discount
if (product.AppliedDiscounts.Count(d => d.Id == discount.Id) > 0)
product.AppliedDiscounts.Remove(discount);
}
}
_productService.UpdateProduct(product);
_productService.UpdateHasDiscountsApplied(product);
//back in stock notifications
if (product.ManageInventoryMethod == ManageInventoryMethod.ManageStock &&
product.BackorderMode == BackorderMode.NoBackorders &&
product.AllowBackInStockSubscriptions &&
product.GetTotalStockQuantity() > 0 &&
prevStockQuantity <= 0 &&
product.Published &&
!product.Deleted)
{
_backInStockSubscriptionService.SendNotificationsToSubscribers(product);
}
//activity log
_customerActivityService.InsertActivity("EditProduct", _localizationService.GetResource("ActivityLog.EditProduct"), product.Name);
SuccessNotification(_localizationService.GetResource("Admin.Catalog.Products.Updated"));
if (continueEditing)
{
//selected tab
SaveSelectedTabIndex();
return RedirectToAction("Edit", new {id = product.Id});
}
return RedirectToAction("List");
}
//If we got this far, something failed, redisplay form
PrepareProductModel(model, product, false, true);
PrepareAclModel(model, product, true);
PrepareStoresMappingModel(model, product, true);
return View(model);
}
示例14: Create
//create product
public ActionResult Create()
{
if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
return AccessDeniedView();
var model = new ProductModel();
PrepareProductModel(model, null, true, true);
AddLocales(_languageService, model.Locales);
PrepareAclModel(model, null, false);
PrepareStoresMappingModel(model, null, false);
var styles = _customDataService.GetCustomDataByKeyGroup(CustomDataKeyGroupNames.Style);
var materials = _customDataService.GetCustomDataByKeyGroup(CustomDataKeyGroupNames.Material);
model.Styles = (from st in styles
select new SelectListItem { Text = st.Value, Value = st.Key }).ToList();
model.Materials = (from cd in materials
select new SelectListItem { Text = cd.Value, Value = cd.Key }).ToList();
return View(model);
}
示例15: PrepareStoresMappingModel
protected virtual void PrepareStoresMappingModel(ProductModel model, Product product, bool excludeProperties)
{
if (model == null)
throw new ArgumentNullException("model");
model.AvailableStores = _storeService
.GetAllStores()
.Select(s => s.ToModel())
.ToList();
if (!excludeProperties)
{
if (product != null)
{
model.SelectedStoreIds = _storeMappingService.GetStoresIdsWithAccess(product);
}
}
}