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; }
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); }
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(); }