Пример #1
0
        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;
 }