private void AddClauseToSection(XmlNodeList docSections, LicenseSection section, OrganizationLicenseClause licenseClause) { // Get published clause template var publishedTemplate = _clauseTemplates.Where(i => i.LicenseClauseID == licenseClause.LicenseClauseID).FirstOrDefault(i => i.Status == (int)TemplateStatus.Active); // Get retracted clause template var retractedTemplate = _clauseTemplates.Where(i => i.LicenseClauseID == licenseClause.LicenseClauseID).FirstOrDefault(i => i.Status == (int)TemplateStatus.Retracted); // Return error if both not found if (publishedTemplate == null && retractedTemplate == null) { throw new BaseException("No published templates for this clause."); } // If published template was not found, so it was retracted - use it publishedTemplate = publishedTemplate ?? retractedTemplate; // Process clauses for section switch ((ClauseType)publishedTemplate.ClauseType) { case ClauseType.Text: case ClauseType.Input: case ClauseType.InputAndDropDown: { var temp = new string(licenseClause.ClauseData.Where(p => p != '{' && p != '}').ToArray()); InsertContentIntoNodes(docSections, section.Title, temp); break; } default: throw new BaseException("Unknown clause type"); } }
public static LicenseSectionModel ToModel(this LicenseSection section) { var result = new LicenseSectionModel(); result.ID = section.ID; result.Title = section.Title; return(result); }
/// <summary> /// Get Section list. Save sections that not in db (save difference) /// </summary> /// <param name="stream">The source file</param> private void UpdateSectionsFromTemplateFile(byte[] file, LoggedInUserDetails user) { if (file.Length == 0) { return; } var document = new XmlDocument(); var stream = new MemoryStream(file); document.Load(stream); var documentSections = document.GetElementsByTagName("section"); // Get all sections var existingSections = _sections.All(); // Get section titles var existingSectionTitles = existingSections.Select(p => p.Title).ToList(); var sectionList = GetSectionsFromDocument(documentSections); // Get titles that are not present in database var diff = sectionList.Except(existingSectionTitles).ToList(); // Save new sections foreach (var item in diff) { var section = new LicenseSection { Title = item, CreatedAt = GetDate, CreatedBy = user.ID.Value }; // Save section _sections.Add(section); } }
public void Init() { var today = DateTime.Now; userSysAdmin = new User { ID = 2, OrganizationID = 1, IsActive = true, Email = "*****@*****.**", IsSysAdmin = true, }; user = new User { ID = 3, IsActive = true, Email = "*****@*****.**", IsSysAdmin = false, OrganizationID = null, }; sectionA = new LicenseSection { ID = 1, CreatedBy = user.ID, Title = "sectionA" }; sectionB = new LicenseSection { ID = 2, CreatedBy = user.ID, Title = "sectionB" }; sectionC = new LicenseSection { ID = 3, CreatedBy = user.ID, Title = "sectionC" }; licenseTemplate = new LicenseTemplate { ID = 1, CreatedAt = today, CreatedBy = 1, Status = (int)TemplateStatus.Active, Name = "titleLicense" }; clauseTemplateDraft = new LicenseClauseTemplate { ID = 1, Status = (int)TemplateStatus.Draft, Description = "Descr", LegalText = "text", ShortText = "shortText", LicenseClauseID = 1, Version = 1 }; clauseTemplateActive = new LicenseClauseTemplate { ID = 2, Status = (int)TemplateStatus.Active, Description = "Descr", LegalText = "text", ShortText = "shortText", Version = 1 }; clause1SectionA = new LicenseClause { ID = 1, OrderNumber = 0, LicenseSectionID = sectionA.ID }; clause2SectionA = new LicenseClause { ID = 2, OrderNumber = 0, LicenseSectionID = sectionA.ID }; clause1SectionB = new LicenseClause { ID = 3, OrderNumber = 0, LicenseSectionID = sectionA.ID }; var fileMock = new Mock <HttpPostedFileBase>(); _clauseService = new Mock <ILicenseClauseService>(); _clauseTemplateService = new Mock <ILicenseClauseTemplateService>(); _sectionService = new Mock <ILicenseSectionService>(); organizationService = new Mock <IOrganizationService>(); userService = new Mock <IUserService>(); licenseTemplateService = new Mock <ILicenseTemplatesService>(); userNotificationService = new Mock <IUserNotificationService>(); notificationService = new Mock <INotificationService>(); // Setup notification service notificationService.SetupGet(m => m.User).Returns(userNotificationService.Object); var urlHelper = new Mock <UrlHelper>(); context = new Mock <ControllerContext>(); context.Setup(m => m.HttpContext.Request.Files.Count).Returns(1); context.Setup(m => m.HttpContext.Request.Files[0]).Returns(fileMock.Object); _sectionService.Setup(m => m.GetAll()).Returns(new List <LicenseSection> { sectionA, sectionB, sectionC }); _sectionService.Setup(m => m.Get(sectionA.ID)).Returns(sectionA); _sectionService.Setup(m => m.Get(sectionB.ID)).Returns(sectionB); _sectionService.Setup(m => m.Get(sectionC.ID)).Returns(sectionC); _clauseService.Setup(m => m.Get(It.IsAny <Expression <Func <LicenseClause, bool> > >())) .Returns(new List <LicenseClause> { clause1SectionA, clause2SectionA }); _clauseService.Setup(i => i.Get(clause1SectionA.ID)).Returns(clause1SectionA); _clauseTemplateService.Setup(m => m.Get(It.IsAny <Expression <Func <LicenseClauseTemplate, bool> > >())) .Returns(new List <LicenseClauseTemplate> { clauseTemplateDraft }); _clauseTemplateService.Setup(m => m.Get(clauseTemplateDraft.ID)).Returns(clauseTemplateDraft); _clauseTemplateService.Setup(m => m.Get(clauseTemplateActive.ID)).Returns(clauseTemplateActive); licenseTemplateService.Setup(m => m.GetPublishedGlobalLicense()).Returns(licenseTemplate); controller = new LicenseClausesController(_clauseService.Object, _sectionService.Object, _clauseTemplateService.Object, userService.Object, organizationService.Object, licenseTemplateService.Object, notificationService.Object) { LoggedInUser = new LoggedInUserDetails(userSysAdmin), Url = urlHelper.Object, ControllerContext = context.Object }; }