// Similar to private method public ComparisonResult CompareClauses(OrganizationLicenseClause providerClause, OrganizationLicenseClause consumerClause) { var result = new ComparisonResult(); // Check whether clause selected by consumer if (providerClause.LicenseClauseID != consumerClause.LicenseClauseID) { // Setup result result.IsMatch = false; result.Message = "Not selected"; // Return result return(result); } // Get clasue template var clauseTemplate = _clauseTemplateService.FirstOrDefault(i => i.LicenseClauseID == providerClause.LicenseClauseID); var clauseType = (ClauseType)clauseTemplate.ClauseType; // Setup provider value var providerValue = new ClauseValue(providerClause.ClauseData, clauseType); // Setup consumer value var consumerValue = new ClauseValue(consumerClause.ClauseData, clauseType); // Compare values result = CompareClauseValues(providerValue, consumerValue); // Return result return(result); }
private ComparisonResult CompareClauses(OrganizationLicenseClause providerClause, ClauseModel consumerClause) { var result = new ComparisonResult(); // Check whether clause selected by consumer if (!consumerClause.IsSelectedByConsumer) { // Setup result result.IsMatch = false; result.Message = "Not selected"; // Return result return(result); } // Setup provider value var providerTemplate = _clauseTemplateService.FirstOrDefault(i => i.LicenseClauseID == providerClause.LicenseClauseID); var providerValue = new ClauseValue(providerClause.ClauseData, (ClauseType)providerTemplate.ClauseType); // Setup consumer value var consumerClauseData = _licenseClauses.GetClauseData(consumerClause); var consumerValue = new ClauseValue(consumerClauseData, (ClauseType)consumerClause.Type); // Compare values result = CompareClauseValues(providerValue, consumerValue); // Return result return(result); }
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"); } }
private OrganizationLicenseClause SetupLicenseClause(ClauseModel clause, OrganizationLicense license, LoggedInUserDetails user) { var clauseValue = _licenseClauses.GetClauseData(clause); var consumerClause = new OrganizationLicenseClause { LicenseClauseID = clause.ClauseId, OrganizationLicenseID = license.ID, CreatedBy = user.ID.Value, CreatedAt = GetDate, ClauseData = clauseValue }; return(consumerClause); }
private ClauseMatch SetupComparedClauseDetails(OrganizationLicenseClause clause, ComparisonResult comparisonResult) { // Get license clause var licenseClause = _clauseService.FirstOrDefault(i => i.ID == clause.LicenseClauseID); // Get license template var licenseTemplate = _clauseTemplateService.FirstOrDefault(i => i.LicenseClauseID == licenseClause.ID); // Get section var section = _sectionService.FirstOrDefault(i => i.ID == licenseClause.LicenseSectionID); // Setup result var result = new ClauseMatch { ClauseId = licenseClause.ID, SectionName = section.Title, Value = licenseTemplate.ShortText, Message = comparisonResult.Message, IsMatched = comparisonResult.IsMatch }; // Return result return(result); }