private static CommunicationSendRequest GetSendRequest(CustomerCommunicationUseCase useCase, string message) { var sendRequest = new CommunicationSendRequest() { UseCase = useCase, PersonId = JObject.Parse(message).SelectToken(useCase.PersonIdPath).ToObject <int>(), Parameters = new List <KeyValuePair <string, string> >() }; var templateParams = useCase.TemplateMessageParameters; var jmessage = JObject.Parse(message); if (templateParams != null) { foreach (var templateParamsKey in templateParams) { var value = jmessage.SelectToken(templateParamsKey.Value).ToString(); if (templateParamsKey.Key.ToLower().Contains("amount")) { value = value.FormatCurrency(); } sendRequest.Parameters.Add(new KeyValuePair <string, string>(templateParamsKey.Key, value)); } } return(sendRequest); }
private static bool ApplyFilter(CustomerCommunicationUseCase useCase, string message) { var filter = useCase.Filter; var jmessage = JObject.Parse(message); var predicate = jmessage.SelectToken(filter.Predicate).ToString(); return(predicate.ToLower() == filter.Value.ToLower()); }