Beispiel #1
0
    public static IDictionary <string, object> GetParameters(this string url, string referrer = null)
    {
        var result = new Dictionary <string, object>();

        try
        {
            var pathAndQuery = new PathAndQuery();
            pathAndQuery.Parse(url);
            if (pathAndQuery.QueryParameters is not null && pathAndQuery.QueryParameters.Any())
            {
                foreach (var item in pathAndQuery.QueryParameters)
                {
                    if (!result.ContainsKey(item.Key))
                    {
                        result.Add(item.Key, item.Value);
                    }
                }
            }
        }
        catch { }

        if (!string.IsNullOrEmpty(referrer))
        {
            if (result.ContainsKey(RequestConstants.Referrer))
            {
                var guidStr = Guid.NewGuid().ToString();
                result.Add($"{RequestConstants.Referrer}_{guidStr}", referrer);
            }
            else
            {
                result.Add(RequestConstants.Referrer, referrer);
            }
        }

        return(result);
    }