// 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);
        }
Esempio n. 3
0
        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);
        }