/// <summary> /// 新增片段 /// </summary> /// <param name="fragmentModel"></param> /// <returns></returns> public bool AddFragmentInfo(FragmentModel fragmentModel) { PKS_KFRAGMENT fragmentment = new PKS_KFRAGMENT(); fragmentment.KTEMPLATEID = fragmentModel.TemplateId; fragmentment.KTEMPLATECATALOGUEID = fragmentModel.TemplateCatalogueId; fragmentment.TITLE = fragmentModel.Title; fragmentment.QUERYPARAMETER = fragmentModel.QueryParameter; fragmentment.COMPONENTPARAMETER = fragmentModel.ComponentParameter; fragmentment.HTMLTEXT = fragmentModel.Htmltext; fragmentment.KFRAGMENTTYPEID = fragmentModel.FragmentTypeId; fragmentment.PLACEHOLDERID = fragmentModel.PlaceholderId; _kFragmentRepository.Add(fragmentment); return(true); }
public bool SaveFragments(int templateId, List <FragmentModel> fragmentModels) { //知识片段 var db_fragmentIds = _kFragmentRepository.GetQuery() .Where(item => item.KTEMPLATEID == templateId) .Select(item => item.Id) .ToList(); var toRemoveFragmentIds = fragmentModels.Where(item => item.Id > 0 && !db_fragmentIds.Contains(item.Id)) .Select(item => item.Id) .ToList(); if (toRemoveFragmentIds.Any()) { var toRemoveFragments = _kFragmentRepository.GetQuery() .Where(item => item.KTEMPLATEID == templateId && toRemoveFragmentIds.Contains(item.Id)).ToList(); toRemoveFragments.ForEach(item => { _kFragmentRepository.Delete(item, false); }); } foreach (var fragmentModel in fragmentModels) { PKS_KFRAGMENT fragment = new PKS_KFRAGMENT(); fragment.KTEMPLATEID = templateId; // fragment.KTEMPLATECATALOGUEID = fragmentModel.TemplateCatalogueId; fragment.TITLE = fragmentModel.Title; fragment.QUERYPARAMETER = fragmentModel.QueryParameter; fragment.COMPONENTPARAMETER = fragmentModel.ComponentParameter; fragment.HTMLTEXT = fragmentModel.Htmltext; fragment.KFRAGMENTTYPEID = fragmentModel.FragmentTypeId; fragment.PLACEHOLDERID = fragmentModel.PlaceholderId; if (fragmentModel.Id > 0) { fragment.Id = fragmentModel.Id; _kFragmentRepository.Update(fragment, false); } else { _kFragmentRepository.Add(fragment, false); } } return(true); }
public bool SaveTemplate(TemplateTree templateTree, List <FragmentModel> fragmentModels, List <CatalogueInfo> catalogueInfos) { //模板 int templateId = templateTree.Id; var kTemplate = _kTemplateRepository.GetQuery().FirstOrDefault(item => item.Id == templateId); if (kTemplate == null) { throw new Exception("模板不存在"); } _kTemplateRepository.BeginTrans(); kTemplate.TEMPLATE = templateTree.Template; kTemplate.LASTUPDATEDDATE = DateTime.Now; _kTemplateRepository.Update(kTemplate, false); //知识片段 var db_fragments = _kFragmentRepository.GetQuery() .Where(item => item.KTEMPLATEID == templateId) .ToList(); foreach (var item in db_fragments) { _kFragmentRepository.Delete(item, false); } List <PKS_KFRAGMENT> toAddFragments = new List <PKS_KFRAGMENT>(); foreach (var fragmentModel in fragmentModels) { PKS_KFRAGMENT fragment = new PKS_KFRAGMENT(); fragment.KTEMPLATEID = templateId; fragment.TITLE = fragmentModel.Title; fragment.QUERYPARAMETER = fragmentModel.QueryParameter; fragment.COMPONENTPARAMETER = fragmentModel.ComponentParameter; fragment.HTMLTEXT = fragmentModel.Htmltext; fragment.KFRAGMENTTYPEID = fragmentModel.FragmentTypeId; fragment.PLACEHOLDERID = fragmentModel.PlaceholderId; fragment.CREATEDDATE = DateTime.Now; toAddFragments.Add(fragment); } if (toAddFragments.Any()) { _kFragmentRepository.AddRange(toAddFragments, false); } //目录 var db_catalogues = _kTCatalogueRepository.GetQuery() .Where(item => item.KTEMPLATEID == templateId) .ToList(); db_catalogues.ForEach(item => { _kTCatalogueRepository.Delete(item, false); }); List <PKS_KTEMPLATE_CATALOGUE> rootCatalogues = new List <PKS_KTEMPLATE_CATALOGUE>(); var rootCatalogueInfos = catalogueInfos.Where(item => string.IsNullOrWhiteSpace(item.ParentNodeId) || item.ParentNodeId == "0"); foreach (var catalogueInfo in rootCatalogueInfos) { PKS_KTEMPLATE_CATALOGUE catalogue = new PKS_KTEMPLATE_CATALOGUE(); catalogue.Id = 0; catalogue.CODE = catalogueInfo.Code; catalogue.NAME = catalogueInfo.Name; catalogue.LEVELNUMBER = catalogueInfo.LevelNumber; catalogue.ORDERNUMBER = catalogueInfo.OrderNumber; catalogue.KTEMPLATEID = catalogueInfo.TemplateId; catalogue.PLACEHOLDERID = catalogueInfo.PlaceHolderId; catalogue.CREATEDDATE = DateTime.Now; catalogueInfo.Catalogue = catalogue; BuildChildCatalogue(catalogue, catalogueInfo, catalogueInfos); rootCatalogues.Add(catalogue); } if (rootCatalogues.Any()) { _kTCatalogueRepository.AddRange(rootCatalogues, false); } //SaveCatalogues2(templateId, catalogueInfos); _kTemplateRepository.Submit(); _kTemplateRepository.EndTrans(); //更新知识片段的CatalogueId foreach (var fragment in toAddFragments) { var placeHolderId = fragment.PLACEHOLDERID; var catalogueInfo = catalogueInfos.Where(item => item.Catalogue != null && item.PlaceHolderId == placeHolderId).FirstOrDefault(); if (catalogueInfo != null) { fragment.KTEMPLATECATALOGUEID = catalogueInfo.Catalogue.Id; fragment.MPLACEHOLDERID = placeHolderId; _kFragmentRepository.Update(fragment); } else { var fragmentModel = fragmentModels.FirstOrDefault(item => item.PlaceholderId == placeHolderId); if (fragmentModel != null) { var catalogNodeId = fragmentModel.CatalogueNodeId; if (!string.IsNullOrWhiteSpace(catalogNodeId)) { var cat = catalogueInfos.FirstOrDefault(item => string.Equals(item.PlaceHolderId, catalogNodeId, StringComparison.OrdinalIgnoreCase)); fragment.KTEMPLATECATALOGUEID = cat.Catalogue.Id; fragment.MPLACEHOLDERID = catalogNodeId; _kFragmentRepository.Update(fragment); } } } } return(true); }