Esempio n. 1
0
        public IActionResult EditArticle(KnowledgebaseArticleModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageKnowledgebase))
            {
                return(AccessDeniedView());
            }

            var knowledgebaseArticle = _knowledgebaseService.GetKnowledgebaseArticle(model.Id);

            if (knowledgebaseArticle == null)
            {
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                knowledgebaseArticle = model.ToEntity(knowledgebaseArticle);
                knowledgebaseArticle.UpdatedOnUtc  = DateTime.UtcNow;
                knowledgebaseArticle.Locales       = UpdateLocales(knowledgebaseArticle, model);
                knowledgebaseArticle.CustomerRoles = model.SelectedCustomerRoleIds != null?model.SelectedCustomerRoleIds.ToList() : new List <string>();

                model.SeName = knowledgebaseArticle.ValidateSeName(model.SeName, knowledgebaseArticle.Name, true);
                knowledgebaseArticle.SeName = model.SeName;
                knowledgebaseArticle.Stores = model.SelectedStoreIds != null?model.SelectedStoreIds.ToList() : new List <string>();

                knowledgebaseArticle.AllowComments = model.AllowComments;

                _knowledgebaseService.UpdateKnowledgebaseArticle(knowledgebaseArticle);

                _urlRecordService.SaveSlug(knowledgebaseArticle, model.SeName, "");

                _customerActivityService.InsertActivity("UpdateKnowledgebaseArticle", knowledgebaseArticle.Id,
                                                        _localizationService.GetResource("ActivityLog.UpdateKnowledgebaseArticle"), knowledgebaseArticle.Name);

                model.AvailableCustomerRoles = _customerService
                                               .GetAllCustomerRoles(true)
                                               .Select(cr => cr.ToModel())
                                               .ToList();
                model.AvailableStores = _storeService
                                        .GetAllStores()
                                        .Select(s => s.ToModel())
                                        .ToList();

                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.Knowledgebase.KnowledgebaseArticle.Updated"));
                return(continueEditing ? RedirectToAction("EditArticle", new { knowledgebaseArticle.Id }) : RedirectToAction("EditCategory", new { id = model.ParentCategoryId }));
            }

            //If we got this far, something failed, redisplay form
            return(View(model));
        }
Esempio n. 2
0
        public virtual KnowledgebaseArticle UpdateKnowledgebaseArticleModel(KnowledgebaseArticle knowledgebaseArticle, KnowledgebaseArticleModel model)
        {
            knowledgebaseArticle = model.ToEntity(knowledgebaseArticle);
            knowledgebaseArticle.UpdatedOnUtc = DateTime.UtcNow;
            knowledgebaseArticle.Locales      = model.Locales.ToLocalizedProperty(knowledgebaseArticle, x => x.Name, _urlRecordService);
            model.SeName = knowledgebaseArticle.ValidateSeName(model.SeName, knowledgebaseArticle.Name, true);
            knowledgebaseArticle.SeName        = model.SeName;
            knowledgebaseArticle.AllowComments = model.AllowComments;
            _knowledgebaseService.UpdateKnowledgebaseArticle(knowledgebaseArticle);

            _urlRecordService.SaveSlug(knowledgebaseArticle, model.SeName, "");

            _customerActivityService.InsertActivity("UpdateKnowledgebaseArticle", knowledgebaseArticle.Id,
                                                    _localizationService.GetResource("ActivityLog.UpdateKnowledgebaseArticle"), knowledgebaseArticle.Name);
            return(knowledgebaseArticle);
        }
Esempio n. 3
0
        public virtual async Task <KnowledgebaseArticle> UpdateKnowledgebaseArticleModel(KnowledgebaseArticle knowledgebaseArticle, KnowledgebaseArticleModel model)
        {
            knowledgebaseArticle = model.ToEntity(knowledgebaseArticle);
            knowledgebaseArticle.UpdatedOnUtc = DateTime.UtcNow;
            knowledgebaseArticle.Locales      = await model.Locales.ToTranslationProperty(knowledgebaseArticle, x => x.Name, _seoSettings, _slugService, _languageService);

            model.SeName = await knowledgebaseArticle.ValidateSeName(model.SeName, knowledgebaseArticle.Name, true, _seoSettings, _slugService, _languageService);

            knowledgebaseArticle.SeName        = model.SeName;
            knowledgebaseArticle.AllowComments = model.AllowComments;
            await _knowledgebaseService.UpdateKnowledgebaseArticle(knowledgebaseArticle);

            await _slugService.SaveSlug(knowledgebaseArticle, model.SeName, "");

            await _customerActivityService.InsertActivity("UpdateKnowledgebaseArticle", knowledgebaseArticle.Id,
                                                          _translationService.GetResource("ActivityLog.UpdateKnowledgebaseArticle"), knowledgebaseArticle.Name);

            return(knowledgebaseArticle);
        }