Skip to content

Commit

Permalink
Admin - Minor refactoring - IProductViewModelService
Browse files Browse the repository at this point in the history
  • Loading branch information
KrzysztofPajak committed Sep 23, 2021
1 parent e37d686 commit dc5b2bb
Showing 1 changed file with 35 additions and 160 deletions.
195 changes: 35 additions & 160 deletions src/Web/Grand.Web.Admin/Services/ProductViewModelService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,33 @@ protected virtual async Task SaveProductTags(Product product, string[] productTa
}
}
}

protected virtual async Task<T> PrepareAddProductModel<T>() where T : ProductModel.AddProductModel, new()
{
var model = new T {
//a vendor should have access only to his products
IsLoggedInAsVendor = _workContext.CurrentVendor != null
};

var storeId = _workContext.CurrentCustomer.StaffStoreId;

//stores
model.AvailableStores.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var s in (await _storeService.GetAllStores()).Where(x => x.Id == storeId || string.IsNullOrWhiteSpace(storeId)))
model.AvailableStores.Add(new SelectListItem { Text = s.Shortcut, Value = s.Id.ToString() });

//vendors
model.AvailableVendors.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var v in await _vendorService.GetAllVendors(showHidden: true))
model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() });

//product types
model.AvailableProductTypes = ProductType.SimpleProduct.ToSelectList(_translationService, _workContext, false).ToList();
model.AvailableProductTypes.Insert(0, new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = "0" });

return model;
}

public virtual async Task PrepareAddProductAttributeCombinationModel(ProductAttributeCombinationModel model, Product product)
{
if (model == null)
Expand Down Expand Up @@ -1061,26 +1088,7 @@ public virtual async Task DeleteSelected(IList<string> selectedIds)
}
public virtual async Task<ProductModel.AddRequiredProductModel> PrepareAddRequiredProductModel()
{
var model = new ProductModel.AddRequiredProductModel {
//a vendor should have access only to his products
IsLoggedInAsVendor = _workContext.CurrentVendor != null
};

var storeId = _workContext.CurrentCustomer.StaffStoreId;

//stores
model.AvailableStores.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var s in (await _storeService.GetAllStores()).Where(x => x.Id == storeId || string.IsNullOrWhiteSpace(storeId)))
model.AvailableStores.Add(new SelectListItem { Text = s.Shortcut, Value = s.Id.ToString() });

//vendors
model.AvailableVendors.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var v in await _vendorService.GetAllVendors(showHidden: true))
model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() });

//product types
model.AvailableProductTypes = ProductType.SimpleProduct.ToSelectList(_translationService, _workContext, false).ToList();
model.AvailableProductTypes.Insert(0, new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = "0" });
var model = await PrepareAddProductModel<ProductModel.AddRequiredProductModel>();
return model;
}
public virtual async Task<(IList<ProductModel> products, int totalCount)> PrepareProductModel(ProductModel.AddProductModel model, int pageIndex, int pageSize)
Expand Down Expand Up @@ -1557,146 +1565,32 @@ public virtual async Task DeleteAssociatedProduct(Product product)
}
public virtual async Task<ProductModel.AddRelatedProductModel> PrepareRelatedProductModel()
{
var model = new ProductModel.AddRelatedProductModel {
//a vendor should have access only to his products
IsLoggedInAsVendor = _workContext.CurrentVendor != null
};

var storeId = _workContext.CurrentCustomer.StaffStoreId;

//stores
model.AvailableStores.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var s in (await _storeService.GetAllStores()).Where(x => x.Id == storeId || string.IsNullOrWhiteSpace(storeId)))
model.AvailableStores.Add(new SelectListItem { Text = s.Shortcut, Value = s.Id.ToString() });

//vendors
model.AvailableVendors.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var v in await _vendorService.GetAllVendors(showHidden: true))
model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() });

//product types
model.AvailableProductTypes = ProductType.SimpleProduct.ToSelectList(_translationService, _workContext, false).ToList();
model.AvailableProductTypes.Insert(0, new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = "0" });
var model = await PrepareAddProductModel<ProductModel.AddRelatedProductModel>();
return model;
}
public virtual async Task<ProductModel.AddSimilarProductModel> PrepareSimilarProductModel()
{
var model = new ProductModel.AddSimilarProductModel {
//a vendor should have access only to his products
IsLoggedInAsVendor = _workContext.CurrentVendor != null
};

var storeId = _workContext.CurrentCustomer.StaffStoreId;

//stores
model.AvailableStores.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var s in (await _storeService.GetAllStores()).Where(x => x.Id == storeId || string.IsNullOrWhiteSpace(storeId)))
model.AvailableStores.Add(new SelectListItem { Text = s.Shortcut, Value = s.Id.ToString() });

//vendors
model.AvailableVendors.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var v in await _vendorService.GetAllVendors(showHidden: true))
model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() });

//product types
model.AvailableProductTypes = ProductType.SimpleProduct.ToSelectList(_translationService, _workContext, false).ToList();
model.AvailableProductTypes.Insert(0, new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = "0" });
var model = await PrepareAddProductModel<ProductModel.AddSimilarProductModel>();
return model;
}
public virtual async Task<ProductModel.AddBundleProductModel> PrepareBundleProductModel()
{
var model = new ProductModel.AddBundleProductModel {
//a vendor should have access only to his products
IsLoggedInAsVendor = _workContext.CurrentVendor != null
};

var storeId = _workContext.CurrentCustomer.StaffStoreId;

//stores
model.AvailableStores.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var s in (await _storeService.GetAllStores()).Where(x => x.Id == storeId || string.IsNullOrWhiteSpace(storeId)))
model.AvailableStores.Add(new SelectListItem { Text = s.Shortcut, Value = s.Id.ToString() });

//vendors
model.AvailableVendors.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var v in await _vendorService.GetAllVendors(showHidden: true))
model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() });

var model = await PrepareAddProductModel<ProductModel.AddBundleProductModel>();
return model;
}
public virtual async Task<ProductModel.AddCrossSellProductModel> PrepareCrossSellProductModel()
{
var model = new ProductModel.AddCrossSellProductModel {
//a vendor should have access only to his products
IsLoggedInAsVendor = _workContext.CurrentVendor != null
};

var storeId = _workContext.CurrentCustomer.StaffStoreId;

//stores
model.AvailableStores.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var s in (await _storeService.GetAllStores()).Where(x => x.Id == storeId || string.IsNullOrWhiteSpace(storeId)))
model.AvailableStores.Add(new SelectListItem { Text = s.Shortcut, Value = s.Id.ToString() });

//vendors
model.AvailableVendors.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var v in await _vendorService.GetAllVendors(showHidden: true))
model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() });

//product types
model.AvailableProductTypes = ProductType.SimpleProduct.ToSelectList(_translationService, _workContext, false).ToList();
model.AvailableProductTypes.Insert(0, new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = "0" });

var model = await PrepareAddProductModel<ProductModel.AddCrossSellProductModel>();
return model;
}
public virtual async Task<ProductModel.AddRecommendedProductModel> PrepareRecommendedProductModel()
{
var model = new ProductModel.AddRecommendedProductModel {
//a vendor should have access only to his products
IsLoggedInAsVendor = _workContext.CurrentVendor != null
};

var storeId = _workContext.CurrentCustomer.StaffStoreId;

//stores
model.AvailableStores.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var s in (await _storeService.GetAllStores()).Where(x => x.Id == storeId || string.IsNullOrWhiteSpace(storeId)))
model.AvailableStores.Add(new SelectListItem { Text = s.Shortcut, Value = s.Id.ToString() });

//vendors
model.AvailableVendors.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var v in await _vendorService.GetAllVendors(showHidden: true))
model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() });

//product types
model.AvailableProductTypes = ProductType.SimpleProduct.ToSelectList(_translationService, _workContext, false).ToList();
model.AvailableProductTypes.Insert(0, new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = "0" });

var model = await PrepareAddProductModel<ProductModel.AddRecommendedProductModel>();
return model;
}
public virtual async Task<ProductModel.AddAssociatedProductModel> PrepareAssociatedProductModel()
{
var model = new ProductModel.AddAssociatedProductModel {
//a vendor should have access only to his products
IsLoggedInAsVendor = _workContext.CurrentVendor != null
};

var storeId = _workContext.CurrentCustomer.StaffStoreId;

//stores
model.AvailableStores.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var s in (await _storeService.GetAllStores()).Where(x => x.Id == storeId || string.IsNullOrWhiteSpace(storeId)))
model.AvailableStores.Add(new SelectListItem { Text = s.Shortcut, Value = s.Id.ToString() });

//vendors
model.AvailableVendors.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var v in await _vendorService.GetAllVendors(showHidden: true))
model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() });

//product types
model.AvailableProductTypes = ProductType.SimpleProduct.ToSelectList(_translationService, _workContext, false).ToList();
model.AvailableProductTypes.Insert(0, new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = "0" });

var model = await PrepareAddProductModel<ProductModel.AddAssociatedProductModel>();
return model;
}
public virtual async Task<BulkEditListModel> PrepareBulkEditListModel()
Expand Down Expand Up @@ -2380,26 +2274,7 @@ public virtual async Task UpdateProductAttributeValueModel(ProductAttributeValue
}
public virtual async Task<ProductModel.ProductAttributeValueModel.AssociateProductToAttributeValueModel> PrepareAssociateProductToAttributeValueModel()
{
var model = new ProductModel.ProductAttributeValueModel.AssociateProductToAttributeValueModel {
//a vendor should have access only to his products
IsLoggedInAsVendor = _workContext.CurrentVendor != null
};

var storeId = _workContext.CurrentCustomer.StaffStoreId;

//stores
model.AvailableStores.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var s in (await _storeService.GetAllStores()).Where(x => x.Id == storeId || string.IsNullOrWhiteSpace(storeId)))
model.AvailableStores.Add(new SelectListItem { Text = s.Shortcut, Value = s.Id.ToString() });

//vendors
model.AvailableVendors.Add(new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = " " });
foreach (var v in await _vendorService.GetAllVendors(showHidden: true))
model.AvailableVendors.Add(new SelectListItem { Text = v.Name, Value = v.Id.ToString() });

//product types
model.AvailableProductTypes = ProductType.SimpleProduct.ToSelectList(_translationService, _workContext, false).ToList();
model.AvailableProductTypes.Insert(0, new SelectListItem { Text = _translationService.GetResource("Admin.Common.All"), Value = "0" });
var model = await PrepareAddProductModel<ProductModel.ProductAttributeValueModel.AssociateProductToAttributeValueModel>();
return model;
}
public virtual async Task<IList<ProductModel.ProductAttributeCombinationModel>> PrepareProductAttributeCombinationModel(Product product)
Expand Down

0 comments on commit dc5b2bb

Please sign in to comment.