Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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());
        }