예제 #1
0
        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);
        }
예제 #2
0
        public int DeleteAiBookModel(AiBookModel store)
        {
            try
            {
                if (store == null)
                {
                    throw new ArgumentNullException(nameof(store));
                }

                if (store is IEntityForCaching)
                {
                    throw new ArgumentException("Cacheable entities are not supported by Entity Framework");
                }

                // var allStores = GetAllBookDirs();
                //  if (allStores.Count == 1)
                //    throw new Exception("You cannot delete the only configured BookDir");

                _bookNodeRepository.Delete(store);

                _cacheManager.RemoveByPattern(NopBookNodeDefault.BookNodesPrefixCacheKey);

                //event notification
                _eventPublisher.EntityDeleted(store);

                return(1);
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message, ex, _workContext.CurrentCustomer);


                return(0);
            }
        }
예제 #3
0
        public int UpdateAiBookModel(AiBookModel aibookmodel)
        {
            try
            {
                if (aibookmodel == null)
                {
                    throw new ArgumentNullException(nameof(aibookmodel));
                }

                if (aibookmodel is IEntityForCaching)
                {
                    throw new ArgumentException("Cacheable entities are not supported by Entity Framework");
                }
                _bookNodeRepository.Update(aibookmodel);
                _cacheManager.RemoveByPattern(NopBookNodeDefault.BookNodesPrefixCacheKey);
                //event notification
                _eventPublisher.EntityUpdated(aibookmodel);
                return(1);
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message, ex, _workContext.CurrentCustomer);
                return(0);
            }
        }
예제 #4
0
        public int InsertAiBookModel(AiBookModel bookNode)
        {
            try
            {
                if (bookNode == null)
                {
                    throw new ArgumentNullException(nameof(bookNode));
                }

                if (bookNode is IEntityForCaching)
                {
                    throw new ArgumentException("Cacheable entities are not supported by Entity Framework");
                }

                //_bookdirRepository.Insert(bookNode);
                _bookNodeRepository.Insert(bookNode);
                _cacheManager.RemoveByPattern(NopBookDirDefault.BookDirsPrefixCacheKey);

                //event notification
                _eventPublisher.EntityInserted(bookNode);


                return(1);
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message, ex, _workContext.CurrentCustomer);

                return(0);
            }
        }
예제 #5
0
 public bool CheckExist(AiBookModel aibookmodel)
 {
     return(false);
 }