// 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); }
public ClauseTableEntity(Clause clause) { ClauseValue = clause.ClauseValue; ClauseType = clause.ClauseType.ToString(); ClauseDataType = clause.ClauseDataType.ToString(); RowKey = ColumnName = clause.ColumnName; PartitionKey = $"{clause.ColumnName} {clause.ClauseType.ToString()} {ClauseValue.NormalizedTableKey()} {clause.ClauseDataType.ToString()}"; HitCounter = 1; }
private ComparisonResult CompareClauseValues(ClauseValue providerSelection, ClauseValue consumerSelection) { // Define result var result = new ComparisonResult(); // Setup default value for comparison result result.IsMatch = true; // Compare switch (providerSelection.Type) { case ClauseType.Text: result.IsMatch = providerSelection.Type == consumerSelection.Type; break; case ClauseType.Input: // Check whether input values are not numbers var isCustomProviderText = (providerSelection.Number == null && consumerSelection.Number == null); // Compare numbers if (!isCustomProviderText && providerSelection.Number > consumerSelection.Number) { result.IsMatch = false; result.Message = $"To match you should specify {providerSelection.Number} or more. You specified {consumerSelection.Number}"; } break; case ClauseType.InputAndDropDown: // Compare numbers if (providerSelection.Number > consumerSelection.Number) { result.IsMatch = false; result.Message += $"To match you should specify {providerSelection.Number} or more. You specified {consumerSelection.Number}. "; } // Compare dropdown selection if (!string.Equals(providerSelection.ListItem, consumerSelection.ListItem, StringComparison.InvariantCultureIgnoreCase)) { result.IsMatch = false; result.Message += $"To match you should select {providerSelection.ListItem}. You selected {consumerSelection.ListItem}. "; } break; default: throw new Exception("Unknown clause type."); } // Return result return(result); }