public BookDirSearchModel PrepareBookDirSearchModel(BookDirSearchModel searchModel, BookDirModel bdm) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } searchModel.SearchDirName = bdm.Name; /// searchModel.AvailableBooks = //prepare available stores _baseAdminModelFactory.PrepareStores(searchModel.AvailableStores); _baseAdminModelFactory.PrepareCategories(searchModel.AvailableCategories); //searchModel.AvailableBooks = _productService.ge //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }
public IActionResult Create(BookDirModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCategories)) { return(AccessDeniedView()); } if (ModelState.IsValid) { var category = model.ToEntity <BookDir>(); category.CreatedOnUtc = DateTime.UtcNow; category.UpdatedOnUtc = DateTime.UtcNow; if (string.IsNullOrEmpty(category.PriceRanges)) { category.PriceRanges = "0"; } //search engine name model.SeName = _urlRecordService.ValidateSeName(category, model.SeName, category.Name, true); _urlRecordService.SaveSlug(category, model.SeName, 0); //locales // UpdateLocales(category, model); //discounts // var allDiscounts = _discountService.GetAllDiscounts(DiscountType.AssignedToCategories, showHidden: true); // foreach (var discount in allDiscounts) // { // if (model.SelectedDiscountIds != null && model.SelectedDiscountIds.Contains(discount.Id)) // //category.AppliedDiscounts.Add(discount); // category.DiscountCategoryMappings.Add(new DiscountCategoryMapping { Discount = discount //}); // } _bookDirService.InsertBookDir(category); // _categoryService.UpdateCategory(category); //update picture seo file name // UpdatePictureSeoNames(category); //ACL (customer roles) // SaveCategoryAcl(category, model); //stores // SaveStoreMappings(category, model); //activity log _customerActivityService.InsertActivity("AddNewBookDir", string.Format(_localizationService.GetResource("ActivityLog.AddNewBookDir"), category.Name), category); SuccessNotification(_localizationService.GetResource("Admin.AiBookDir.BookDir.AddNewBookDir")); if (!continueEditing) { return(RedirectToAction("Index")); } return(RedirectToAction("Edit", new { id = category.Id })); } //prepare model model = _bookDirFactory.PrepareBookDirModel(); //if we got this far, something failed, redisplay form return(View(model)); }
public BookDirModel PrepareBookDirModel(BookDirModel model, BookDir bookdir = null, bool excludeProperties = false) { Action <BookDirLocalizedModel, int> localizedModelConfiguration = null; if (bookdir != null) { //fill in model values from the entity if (model == null) { model = bookdir.ToModel <BookDirModel>(); model.SeName = _urlRecordService.GetSeName(bookdir, 0, true, false); } var result = _productService.GetProductById(bookdir.BookID); if (result != null) { if (result.ProductCategories != null) { model.CategryID = result.ProductCategories.FirstOrDefault().CategoryId; } model.BookID = result.Id; var products = _productService.SearchProducts(showHidden: true, categoryIds: new List <int>() { model.CategryID }, manufacturerId: 0, storeId: 0, vendorId: 0, warehouseId: 0, productType: null, keywords: null, pageIndex: 0, pageSize: int.MaxValue); // model.BookList = products.ToList().ToSelect<Product>() } //prepare nested search model // PrepareBookDirSearchModel() // PrepareCategoryProductSearchModel(model.CategoryProductSearchModel, category); //define localized model configuration action localizedModelConfiguration = (locale, languageId) => { locale.Name = _localizationService.GetLocalized(bookdir, entity => entity.Name, languageId, false, false); locale.Description = _localizationService.GetLocalized(bookdir, entity => entity.Description, languageId, false, false); locale.MetaKeywords = _localizationService.GetLocalized(bookdir, entity => entity.MetaKeywords, languageId, false, false); locale.MetaDescription = _localizationService.GetLocalized(bookdir, entity => entity.MetaDescription, languageId, false, false); //locale.MetaTitle = _localizationService.GetLocalized(category, entity => entity.MetaTitle, languageId, false, false); //locale.SeName = _urlRecordService.GetSeName(category, languageId, false, false); }; } //set default values for the new model if (bookdir == null) { if (model == null) { model = new BookDirModel(); } //model.PageSize = _catalogSettings.DefaultCategoryPageSize; // model.PageSizeOptions = _catalogSettings.DefaultCategoryPageSizeOptions; model.Published = true; // model.IncludeInTopMenu = true; model.AllowCustomersToSelectPageSize = true; } //prepare localized models if (!excludeProperties) { model.Locales = _localizedModelFactory.PrepareLocalizedModels(localizedModelConfiguration); } //prepare available category templates // _baseAdminModelFactory.PrepareCategoryTemplates(model.AvailableCategoryTemplates, false); //prepare available parent categories _baseAdminModelFactory.PrepareCategories(model.AvailableCategories, defaultItemText: _localizationService.GetResource("Admin.Catalog.Categories.Fields.Parent.None")); //prepare model discounts // var availableDiscounts = _discountService.GetAllDiscounts(DiscountType.AssignedToCategories, showHidden: true); //_discountSupportedModelFactory.PrepareModelDiscounts(model, category, availableDiscounts, excludeProperties); //prepare model customer roles _aclSupportedModelFactory.PrepareModelCustomerRoles(model, bookdir, excludeProperties); //prepare model stores _storeMappingSupportedModelFactory.PrepareModelStores(model, bookdir, excludeProperties); return(model); }