public AiBookModelView PrepareBookNodeModel(AiBookModelView bookModelModel, int?filterByBookId) { var model = new AiBookModel(); if (bookModelModel == null) { throw new ArgumentNullException(nameof(bookModelModel)); } Action <AiBookModelLocalizedModel, int> localizedModelConfiguration = null; //prepare nested search models //Prepare Categories _baseAdminModelFactory.PrepareCategories(bookModelModel.AvailableCategories, defaultItemText: _localizationService.GetResource("Admin.Catalog.Categories.Fields.Parent.None")); if (bookModelModel.BookDirId > 0) { var bookdir = _bookdirService.GetBookDirById(bookModelModel.BookDirId); if (bookdir != null) { bookModelModel.BookId = bookdir.BookID; } bookModelModel.AvailableBookDirs = SelectListHelper.GetBookDirList(_bookdirService, _workContext.CurrentCustomer, _cacheManager); } if (bookModelModel.BookId > 0) { var result = _productService.GetProductById(bookModelModel.BookId); if (result != null) { if (result.ProductCategories != null) { bookModelModel.CateId = result.ProductCategories.FirstOrDefault().CategoryId; } bookModelModel.BookId = result.Id; bookModelModel.AvailableBooks = SelectListHelper.GetBookList(_productService, new List <int> { bookModelModel.CateId }, _workContext.CurrentCustomer, _cacheManager); } } localizedModelConfiguration = (locale, languageId) => { locale.Name = _localizationService.GetLocalized(model, entity => entity.Name, languageId, false, false); locale.Desc = _localizationService.GetLocalized(model, entity => entity.Desc, languageId, false, false); locale.WebModelUrl = _localizationService.GetLocalized(model, entity => entity.WebModelUrl, languageId, false, false); locale.WebGltfUrl = _localizationService.GetLocalized(model, entity => entity.WebGltfUrl, languageId, false, false); locale.WebBinUrl = _localizationService.GetLocalized(model, entity => entity.WebBinUrl, languageId, false, false); locale.AbUrl = _localizationService.GetLocalized(model, entity => entity.AbUrl, languageId, false, false); locale.ImgUrl = _localizationService.GetLocalized(model, entity => entity.ImgUrl, languageId, false, false); locale.StrJson = _localizationService.GetLocalized(model, entity => entity.StrJson, languageId, false, false); //locale.SeName = _urlRecordService.GetSeName(category, languageId, false, false); }; bookModelModel.Locales = _localizedModelFactory.PrepareLocalizedModels(localizedModelConfiguration); return(bookModelModel); }
public IActionResult Create(AiBookModelView model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCategories)) { return(AccessDeniedView()); } if (ModelState.IsValid) { var category = model.ToEntity <AiBookModel>(); 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); _bookNodeService.InsertAiBookModel(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("AddNewBookNode", string.Format(_localizationService.GetResource("ActivityLog.AddNewBookNode"), category.Name), category); SuccessNotification(_localizationService.GetResource("Admin.AiBookDir.BookNode.AddNewBookNode")); if (!continueEditing) { return(RedirectToAction("Index")); } return(RedirectToAction("Edit", new { id = category.Id })); } //prepare model model = _bookNodeFactory.PrepareBookNodeModel(new AiBookModelView(), 0); //if we got this far, something failed, redisplay form return(View(model)); }