/// <summary>
        /// Replaces keys with the corresponding value from incident - ex "{key1} + {key2} /2 " -> "24 + 13 / 2"
        /// </summary>
        /// <param name="input">Input incident object containing values for expression formatting</param>
        /// <param name="inputExpression">Expression that will be formatted into value string</param>
        /// <returns></returns>
        public static string ReplaceKeysInStringWithValues(IIncidentObject input, string inputExpression)
        {
            MatchCollection matches = keysRegex.Matches(inputExpression);

            foreach (Match match in matches)
            {
                inputExpression = inputExpression.Replace(match.Value, input.Get(match.Value).ToString());
            }

            return(inputExpression);
        }
        private string GetAgencySchemeId(IIncidentObject input)
        {
            foreach (Agency agency in agencies)
            {
                if (!input.ContainsValue(agency.key))
                {
                    continue;
                }
                if (input.Get(agency.key).Equals(agency.value))
                {
                    return(agency.schemeId);
                }
            }

            throw new InvalidDataException("Undefined Agency Encountered");
        }
        protected override void RunParser(IIncidentObject outputObject, string input)
        {
            DateTime inputDate = DateTime.Parse(input);
            TimeSpan timeSpan  = inputDate - DateTime.MinValue;

            switch (outputFormat)
            {
            case "milliseconds":
                SetValue(outputObject, timeSpan.Milliseconds);
                break;

            case "days":
            default:
                SetValue(outputObject, timeSpan.Days);
                break;
            }
        }
        protected override void RunParser(IIncidentObject outputObject, string input)
        {
            int inputValue = FormattingUtilities.ParseinputExpressionToNumericValue <int>(input);

            if (IsEqualValidBoundry(inputValue))
            {
                SetValue(outputObject);
            }

            if (min != null && inputValue < min)
            {
                return;
            }

            if (max != null && inputValue > max)
            {
                return;
            }

            SetValue(outputObject);
        }
Beispiel #5
0
 protected override void RunParser(IIncidentObject outputObject, string input)
 {
     SetValue(outputObject, defaultValue);
 }
 private void SetValue(IIncidentObject outputObject)
 {
     SetValue(outputObject, value);
 }
Beispiel #7
0
 protected void SetValue(IIncidentObject outputObject, object value)
 {
     outputObject.SetObject(outputKey, value);
 }
Beispiel #8
0
 internal abstract void Parse(IIncidentObject inputIncident, IIncidentObject outputObject);
Beispiel #9
0
 public bool Validate(IIncidentObject input)
 {
     return(((string)input.Get(key)).Equals(value));
 }
 protected abstract void RunParser(IIncidentObject outputObject, string input);
        internal override void Parse(IIncidentObject inputIncident, IIncidentObject outputObject)
        {
            string inputValue = FormattingUtilities.ReplaceKeysInStringWithValues(inputIncident, inputExpression);

            RunParser(outputObject, inputValue);
        }