private PrtgUrl(ConnectionDetails connectionDetails, string function, IParameters parameters) { StringBuilder urlBuilder = new StringBuilder(); urlBuilder.Append(AddUrlPrefix(connectionDetails.Server)); urlBuilder.Append(function); foreach (var p in parameters.GetParameters()) { AddParameter(urlBuilder, p.Key, p.Value); } if (!usernameFound && !parameters.Cookie) { AddParameter(urlBuilder, Parameter.UserName, connectionDetails.UserName); } if (!passFound && !parameters.Cookie) { if (connectionDetails.PassHash == null) { throw new ArgumentNullException(nameof(connectionDetails.PassHash), $"A password or passhash must be specified. Please specify a passhash in the {nameof(connectionDetails.PassHash)} parameter, or a password or passhash in the {nameof(parameters)} parameter"); } AddParameter(urlBuilder, Parameter.PassHash, connectionDetails.PassHash); } Url = urlBuilder.ToString(); #if DEBUG Debug.WriteLine(Url); #endif }
public static IEnumerable<FileWatcherParam> GetWatcherParameters(IParameters parameters) { string startWith = "WatchFolder_"; var allParameters = parameters.GetParameters(); var allPrm = allParameters .Where(p => p.Key.ToLowerInvariant().StartsWith(startWith.ToLowerInvariant())) .Select(p => new { ParamFolderAndFilter = p.Value, ParamSubKey = p.Key.Substring(startWith.Length) }) .Select(p => new { ParamFolderAndFilter = p.ParamFolderAndFilter, ParamCommand = allParameters.ContainsKey("CommandLine_" + p.ParamSubKey) ? allParameters["CommandLine_" + p.ParamSubKey] : string.Empty, LogCodepage = allParameters.ContainsKey("Codepage_" + p.ParamSubKey) ? allParameters["Codepage_" + p.ParamSubKey] : string.Empty, }) .Where(p => !string.IsNullOrWhiteSpace(p.ParamCommand)) .Where(p => p.ParamFolderAndFilter.LastIndexOf(@"\") > 0) .Select(p => new { Folder = p.ParamFolderAndFilter.Substring(0, p.ParamFolderAndFilter.LastIndexOf(@"\")), Filter = p.ParamFolderAndFilter.Substring(p.ParamFolderAndFilter.LastIndexOf(@"\") + 1), Command = p.ParamCommand, LogCodepage = p.LogCodepage, }) .Select(p => new FileWatcherParam(p.Folder, p.Filter, p.Command, p.LogCodepage)) .ToArray(); return allPrm; }