private static DirectionExclusion GetOptionDirectionExclusion(HashSet <string> bpModifiers) { var ex = new DirectionExclusion(null); if (bpModifiers.Contains("ZoneExpansion")) { ex.Modifiers.Add("ZoneExpansion"); ex.Zone = true; } return(ex); }
private JToken[] GetParametersToProcess(JToken parametersRoot, string key, DirectionExclusion ex) { var parametersToProcess = FindByKey(parametersRoot, key, ex).ToArray(); if (key == TariffDirection.FeeKey) { var cityParams = FindByKey(parametersRoot, TariffDirection.CityFeeKey); var federalParams = FindByKey(parametersRoot, TariffDirection.FederalFeeKey); parametersToProcess = parametersToProcess.Union(cityParams).Union(federalParams).ToArray(); } return(parametersToProcess); }
public IEnumerable <JToken> FindByKey(JToken parametersRoot, string key, DirectionExclusion exclusion) { var defaultResult = Enumerable.Empty <JToken>(); if (!string.IsNullOrEmpty(key) && parametersRoot != null) { var abc = parametersRoot.SelectTokens("[?(@.BaseParameter)]").Where(n => n.ExtractDirection().GetKey(exclusion) == key); return(abc); } return(defaultResult); }
private static DirectionExclusion GetTariffDirectionExclusion(HashSet <string> bpModifiers, HashSet <string> modifiers) { var ex = new DirectionExclusion(new[] { "OverPackage" }); if (bpModifiers.Contains("ZoneExpansion")) { ex.Modifiers.Add("WithinPackage"); ex.Zone = true; } if (modifiers.Contains("ForceWithAdditionalInfluence") || modifiers.Contains("ForcedInfluence")) { ex.Modifiers.Add("WithAdditionalOption"); ex.Modifiers.Add("WithAdditionalPackage"); } return(ex); }
public string GetKey(DirectionExclusion exclusion) { var sb = new StringBuilder(); if (BaseParameter != null) { sb.Append($"BaseParameter: {BaseParameter}; "); var zone = (exclusion.Zone) ? string.Empty : (Zone ?? string.Empty); sb.Append($"Zone: {zone}; "); var direction = (exclusion.Direction) ? string.Empty : (Direction ?? string.Empty); sb.Append($"Direction: {direction}; "); var modifiers = BaseParameterModifiers ?? Enumerable.Empty <string>(); if (exclusion.Modifiers != null) { modifiers = modifiers.Where(n => !exclusion.Modifiers.Contains(n)); } sb.Append($"BaseParameterModifiers: {string.Join(",", modifiers)};"); } return(sb.ToString()); }