/// <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); }
protected override void RunParser(IIncidentObject outputObject, string input) { SetValue(outputObject, defaultValue); }
private void SetValue(IIncidentObject outputObject) { SetValue(outputObject, value); }
protected void SetValue(IIncidentObject outputObject, object value) { outputObject.SetObject(outputKey, value); }
internal abstract void Parse(IIncidentObject inputIncident, IIncidentObject outputObject);
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); }