Use file-scoped namespaces

This commit is contained in:
Andriy
2023-07-29 15:14:52 +03:00
parent a24332370d
commit 8ab067a027
58 changed files with 2222 additions and 2280 deletions
@@ -3,49 +3,48 @@ using System.Collections.Generic;
using System.Collections.Specialized;
using System.Web;
namespace Kruzya.TelegramBot.RichSiteSummary.UrchinTrackingModule
namespace Kruzya.TelegramBot.RichSiteSummary.UrchinTrackingModule;
public class UtmUtility
{
public class UtmUtility
public static string ApplyParameters(string url, UtmParameters parameters)
=> ApplyParameters(new Uri(url), parameters);
public static string ApplyParameters(Uri uri, UtmParameters parameters)
{
public static string ApplyParameters(string url, UtmParameters parameters)
=> ApplyParameters(new Uri(url), parameters);
var query = HttpUtility.ParseQueryString(uri.Query);
public static string ApplyParameters(Uri uri, UtmParameters parameters)
SetIfNotNull(query, "utm_source", parameters.Source);
SetIfNotNull(query, "utm_medium", parameters.Type);
SetIfNotNull(query, "utm_campaign", parameters.Campaign);
SetIfNotNull(query, "utm_term", parameters.Term);
SetIfNotNull(query, "utm_content", parameters.Content);
var uriBuilder = new UriBuilder(uri);
uriBuilder.Query = BuildQueryString(query);
return uriBuilder.ToString();
}
protected static string BuildQueryString(NameValueCollection query)
{
var queryParameters = new List<string>();
foreach (var keyName in query.AllKeys)
{
var query = HttpUtility.ParseQueryString(uri.Query);
SetIfNotNull(query, "utm_source", parameters.Source);
SetIfNotNull(query, "utm_medium", parameters.Type);
SetIfNotNull(query, "utm_campaign", parameters.Campaign);
SetIfNotNull(query, "utm_term", parameters.Term);
SetIfNotNull(query, "utm_content", parameters.Content);
var uriBuilder = new UriBuilder(uri);
uriBuilder.Query = BuildQueryString(query);
return uriBuilder.ToString();
var value = query[keyName];
queryParameters.Add($"{HttpUtility.UrlEncode(keyName)}={HttpUtility.UrlEncode(value)}");
}
protected static string BuildQueryString(NameValueCollection query)
{
var queryParameters = new List<string>();
foreach (var keyName in query.AllKeys)
{
var value = query[keyName];
queryParameters.Add($"{HttpUtility.UrlEncode(keyName)}={HttpUtility.UrlEncode(value)}");
}
return String.Join('&', queryParameters);
}
return String.Join('&', queryParameters);
}
protected static void SetIfNotNull(NameValueCollection queryParameteters, string key, string value)
protected static void SetIfNotNull(NameValueCollection queryParameteters, string key, string value)
{
if (string.IsNullOrWhiteSpace(value))
{
if (string.IsNullOrWhiteSpace(value))
{
return;
}
queryParameteters.Set(key, value);
return;
}
queryParameteters.Set(key, value);
}
}