private FaqItemViewModel CreateFaQViewItemModel(KnowledgeBaseGroup parentGroup, KnowledgeBaseItem item)
        {
            _helpdeskProvider.KnowledbaseView(item);

            List <BreadcrumbItem> crumbs = GetBreadcrumbs().Take(2).ToList();

            crumbs.Add(new BreadcrumbItem(Languages.LanguageStrings.FrequentlyAskedQuestions, $"/{Name}/{nameof(FaQ)}/", false));

            crumbs.Add(new BreadcrumbItem(parentGroup.Name,
                                          $"/{Name}/{nameof(FaQ)}/{parentGroup.Id}/{BaseModel.RouteFriendlyName(parentGroup.Name)}/", true));

            KnowledgeBaseGroup currGroup = parentGroup.Parent;

            while (currGroup != null)
            {
                crumbs.Insert(3, new BreadcrumbItem(currGroup.Name,
                                                    $"/{Name}/{nameof(FaQ)}/{currGroup.Id}/{BaseModel.RouteFriendlyName(currGroup.Name)}/", true));
                currGroup = currGroup.Parent;
            }

            BaseModelData modelData = GetModelData();

            modelData.ReplaceBreadcrumbs(crumbs);

            return(new FaqItemViewModel(modelData,
                                        KnowledgeBaseToFaQGroup(parentGroup), item.Description, item.ViewCount,
                                        FormatTextForDisplay(item.Content)));
        }
 public KnowledgeGroupViewModel(
     IRepositoryFactory <ICustomerRepository> repositoryFactory,
     IViewModelsFactory <IKnowledgeGroupViewModel> groupVmFactory,
     ICustomerRepository customerRepository,
     ICustomerEntityFactory entityFactory,
     KnowledgeBaseGroup item)
     : base(null, null)
 {
     _repositoryFactory          = repositoryFactory;
     _groupVmFactory             = groupVmFactory;
     CustomersRepository         = customerRepository;
     _originalItem               = item;
     InnerItem                   = _originalItem.DeepClone(entityFactory as IKnownSerializationTypes);
     _innerItem.PropertyChanged += _innerItem_PropertyChanged;
     EmbeddedHierarchyEntry      = this;
 }
Example #3
0
 private void PopulateKnowledgeArticleData(KnowledgeBaseGroup group, int count)
 {
     for (int i = 0; i < count; i++)
     {
         KnowledgeBaseArticle article = new KnowledgeBaseArticle()
         {
             Group        = group,
             AuthorName   = users[rnd.Next(users.Length)],
             ModifierName = users[rnd.Next(users.Length)],
             Created      = dates[rnd.Next(dates.Length)],
             LastModified = dates[rnd.Next(dates.Length)],
             Title        = knowledgeBaseArticleTitles[rnd.Next(knowledgeBaseArticleTitles.Length)],
             Body         = bodyes[rnd.Next(bodyes.Length)]
         };
         MockKnowledgeBaseArticleList.Add(article);
     }
 }
        public IActionResult FaQ(int groupId, string groupName)
        {
            if (!_settings.ShowFaq)
            {
                return(RedirectToAction(nameof(Index), Name));
            }

            KnowledgeBaseGroup activeGroup = _helpdeskProvider.GetKnowledgebaseGroup(UserId(), groupId);

            if (activeGroup == null)
            {
                return(RedirectToAction(nameof(FaQ), Name));
            }

            List <KnowledgeBaseGroup> groups = _helpdeskProvider.GetKnowledgebaseGroups(UserId(), activeGroup);

            return(View(CreateFaqViewModel(groups, activeGroup)));
        }
        public void KnowledgeBaseGroup_AddChild()
        {
            // create two KnowledgeBaseGroups
            var a = new KnowledgeBaseGroup()
            {
                Name = "a", Title = "a"
            };
            var b = new KnowledgeBaseGroup()
            {
                Name = "b", Title = "b"
            };
            string a_Id = a.KnowledgeBaseGroupId;
            string b_Id = b.KnowledgeBaseGroupId;

            var repository = GetRepository();

            EndTestAction.Add((() =>
            {
                repository.Remove(b);
                repository.Remove(a);
                repository.UnitOfWork.Commit();
            }));


            // add created groups to DB
            repository.Attach(a);
            repository.Add(a);
            repository.UnitOfWork.Commit();


            b.Parent   = a;
            b.ParentId = a.KnowledgeBaseGroupId;
            repository.Attach(b);
            repository.Add(b);
            repository.UnitOfWork.Commit();

            //KnowledgeBaseGroup is saved correctly?
            var a_check = repository.KnowledgeBaseGroups.Where(x => x.KnowledgeBaseGroupId == a_Id).SingleOrDefault();
            var b_check = repository.KnowledgeBaseGroups.Where(x => x.KnowledgeBaseGroupId == b_Id).SingleOrDefault();

            Assert.IsTrue(a_check != null && a_check.KnowledgeBaseGroupId == a_Id);
            Assert.IsTrue(b_check != null && b_check.KnowledgeBaseGroupId == b_Id && b_check.ParentId == a_check.KnowledgeBaseGroupId);
        }
        public void KnowledgeBaseGroup_AddArticle()
        {
            // create group and arcicle KnowledgeBaseGroups
            var g = new KnowledgeBaseGroup()
            {
                Name = "g", Title = "g"
            };
            var a = new KnowledgeBaseArticle()
            {
                Title = "a", Body = "a"
            };
            string g_Id = g.KnowledgeBaseGroupId;
            string a_Id = a.KnowledgeBaseArticleId;

            var repository = GetRepository();

            EndTestAction.Add((() =>
            {
                repository.Remove(a);
                repository.Remove(g);
                repository.UnitOfWork.Commit();
            }));


            // add created items to DB
            repository.Attach(g);
            repository.Add(g);
            repository.UnitOfWork.Commit();


            a.GroupId = g.KnowledgeBaseGroupId;
            repository.Attach(a);
            repository.Add(a);
            repository.UnitOfWork.Commit();

            //KnowledgeBaseGroup is saved correctly?
            var a_check = repository.KnowledgeBaseArticles.Where(x => x.KnowledgeBaseArticleId == a_Id).SingleOrDefault();
            var g_check = repository.KnowledgeBaseGroups.Where(x => x.KnowledgeBaseGroupId == g_Id).SingleOrDefault();

            Assert.IsTrue(g_check != null && g_check.KnowledgeBaseGroupId == g_Id);
            Assert.IsTrue(a_check != null && a_check.KnowledgeBaseArticleId == a_Id && a_check.GroupId == g_check.KnowledgeBaseGroupId);
        }
        public void KnowledgeBaseGroup_DbOperationTest()
        {
            KnowledgeBaseGroup a = new KnowledgeBaseGroup()
            {
                Name = "a", Title = "a"
            };
            string a_Id = a.KnowledgeBaseGroupId;

            ICustomerRepository repository = GetRepository();

            repository.Attach(a);

            EndTestAction.Add((() =>
            {
                repository.Remove(a);
                repository.UnitOfWork.Commit();
            }));

            // add created group to DB
            repository.Add(a);
            repository.UnitOfWork.Commit();

            //KnowledgeBaseGroup is added to DB correctly?
            KnowledgeBaseGroup a_check = repository.KnowledgeBaseGroups.Where(x => x.KnowledgeBaseGroupId == a_Id).SingleOrDefault();

            Assert.IsTrue(a_check != null && a_check.KnowledgeBaseGroupId == a_Id);

            a.Name = "aa";
            repository.UnitOfWork.Commit();
            a_check = repository.KnowledgeBaseGroups.Where(x => x.KnowledgeBaseGroupId == a_Id).SingleOrDefault();
            Assert.IsTrue(a_check != null && a_check.KnowledgeBaseGroupId == a_Id && a_check.Name == "aa");

            //KnowledgeBaseGroup delete
            repository.Remove(a);
            repository.UnitOfWork.Commit();


            //KnowledgeBaseGroup is delete correctly
            a_check = repository.KnowledgeBaseGroups.Where(x => x.KnowledgeBaseGroupId == a_Id).SingleOrDefault();
            Assert.IsNull(a_check);
        }
Example #8
0
        private void PopulateKnowledgeData()
        {
            KnowledgeBaseGroup gr = new KnowledgeBaseGroup()
            {
                Title = "Группа 1", Name = "Название группы 1"
            };
            KnowledgeBaseGroup pgr1 = new KnowledgeBaseGroup()
            {
                Title = "Подгруппа 1:1", Name = "Название подгруппы 1:1", Parent = gr
            };
            KnowledgeBaseGroup pgr2 = new KnowledgeBaseGroup()
            {
                Title = "Подгруппа 1:2", Name = "Название подгруппы 1:2", Parent = gr
            };

            MockKnowledgeBaseGroupList.Add(gr);
            MockKnowledgeBaseGroupList.Add(pgr1);
            MockKnowledgeBaseGroupList.Add(pgr2);
            PopulateKnowledgeArticleData(gr, 3);
            PopulateKnowledgeArticleData(pgr1, 10);
            PopulateKnowledgeArticleData(pgr2, 15);

            gr = new KnowledgeBaseGroup()
            {
                Title = "Группа 2", Name = "Название группы 2"
            };
            pgr1 = new KnowledgeBaseGroup()
            {
                Title = "Подгруппа 2:1", Name = "Название подгруппы 2:1", Parent = gr
            };
            pgr2 = new KnowledgeBaseGroup()
            {
                Title = "Подгруппа 2:2", Name = "Название подгруппы 2:2", Parent = gr
            };
            MockKnowledgeBaseGroupList.Add(gr);
            MockKnowledgeBaseGroupList.Add(pgr1);
            MockKnowledgeBaseGroupList.Add(pgr2);
            PopulateKnowledgeArticleData(gr, 3);
            PopulateKnowledgeArticleData(pgr1, 10);
            PopulateKnowledgeArticleData(pgr2, 15);
        }
        public void CreateEmptyKnowledgeBaseGroup()
        {
            var client = GetRepository();

            var baseToDb = new KnowledgeBaseGroup();

            baseToDb.Title = "testGroup";
            baseToDb.Name  = "testGroup";

            var parentBaseToDb = new KnowledgeBaseGroup();

            parentBaseToDb.Title = "parentGroup";
            parentBaseToDb.Title = "parentGroup";

            baseToDb.ParentId = parentBaseToDb.KnowledgeBaseGroupId;

            client.Add(parentBaseToDb);
            client.Add(baseToDb);

            client.UnitOfWork.Commit();
        }