/// <inheritdoc /> public string Parse(string input, IEnumerable <Match> matches) { var queryDict = _httpContextService.GetQueryStringDictionary(); foreach (var match in matches) { var queryStringName = match.Groups[2].Value; queryDict.TryGetValue(queryStringName, out var replaceValue); input = input.Replace(match.Value, replaceValue); } return(input); }
public string Parse(string input, IEnumerable <Match> matches) { var queryDict = _httpContextService.GetQueryStringDictionary(); foreach (var match in matches) { if (match.Groups.Count != 3) { continue; } var queryStringName = match.Groups[2].Value; queryDict.TryGetValue(queryStringName, out var replaceValue); replaceValue = WebUtility.UrlEncode(replaceValue); input = input.Replace(match.Value, replaceValue); } return(input); }
public ConditionCheckResultModel Validate(string stubId, StubConditionsModel conditions) { var result = new ConditionCheckResultModel(); var queryStringConditions = conditions?.Url?.Query; if (queryStringConditions == null || queryStringConditions?.Any() != true) { return(result); } var validQueryStrings = 0; var queryString = _httpContextService.GetQueryStringDictionary(); foreach (var condition in queryStringConditions) { // Check whether the condition query is available in the actual query string. if (!queryString.TryGetValue(condition.Key, out var queryValue)) { continue; } // Check whether the condition query value is available in the actual query string. var value = condition.Value ?? string.Empty; if (!StringHelper.IsRegexMatchOrSubstring(queryValue, value)) { // If the check failed, it means the query string is incorrect and the condition should fail. result.Log = $"Query string condition '{condition.Key}: {condition.Value}' failed."; break; } validQueryStrings++; } // If the number of succeeded conditions is equal to the actual number of conditions, // the query string condition is passed and the stub ID is passed to the result. result.ConditionValidation = validQueryStrings == queryStringConditions.Count ? ConditionValidationType.Valid : ConditionValidationType.Invalid; return(result); }