static string RequestObject(string url, UrlFlag?flags, string content, Func <string> defaultProperties) { Func <string, string> getDelim = f => f != string.Empty ? "&" : ""; var builder = new StringBuilder(); builder.Append($"content={content}"); if ((flags & UrlFlag.Columns) == UrlFlag.Columns) { builder.Append($"&columns={defaultProperties()}"); } if ((flags & UrlFlag.Count) == UrlFlag.Count) { builder.Append("&count=500"); } builder.Append($"{getDelim(url)}{url}"); return($"https://prtg.example.com/api/table.xml?{builder}&username=username&passhash=12345678"); }
internal static string RequestProbe(string url = "", UrlFlag?flags = UrlFlag.Columns | UrlFlag.Count) => RequestObject(url, flags, "probenode", DefaultProbeProperties);
internal static string RequestLog(string url = "", UrlFlag?flags = UrlFlag.Columns | UrlFlag.Count) => RequestObject(url, flags, "messages", DefaultLogProperties);
internal static string RequestDevice(string url = "", UrlFlag?flags = UrlFlag.Columns | UrlFlag.Count) => RequestObject(url, flags, "devices", DefaultDeviceProperties);
internal static string RequestGroup(string url = "", UrlFlag?flags = UrlFlag.Columns | UrlFlag.Count) => RequestObject(url, flags, "groups", DefaultGroupProperties);
protected void AssertGroupRequest(string address, Content content, string request, UrlFlag?flags = null) { Assert.AreEqual(Content.Groups, content); if (flags == null) { Assert.AreEqual(UnitRequest.Groups(request), address); } else { Assert.AreEqual(UnitRequest.Groups(request, flags), address); } }
internal static string RequestSensor(string url = "", UrlFlag?flags = UrlFlag.Columns | UrlFlag.Count) => RequestObject(url, flags, "sensors", DefaultSensorProperties);
public static string Schedules(string url = "", UrlFlag?flags = DefaultObjectFlags) => RequestObject(url, flags, "schedules", DefaultScheduleProperties);
protected void AssertGroupRequest(string address, Content content, string request, UrlFlag?flags = null) { Assert.AreEqual(Content.Groups, content); if (flags == null) { Assert.AreEqual(TestHelpers.RequestGroup("count=*&" + request, UrlFlag.Columns), address); } else { Assert.AreEqual(TestHelpers.RequestGroup(request, flags), address); } }
public static string Notifications(string url = "", UrlFlag?flags = DefaultObjectFlags) => RequestObject(url, flags, "notifications", DefaultNotificationProperties);
public static string Objects(string url = "", UrlFlag?flags = DefaultObjectFlags) => RequestObject(url, flags, "objects", DefaultObjectProperties);
public static string Logs(string url = "", UrlFlag?flags = DefaultObjectFlags) => RequestObject(url, flags, "messages", DefaultLogProperties);
public static string Probes(string url = "", UrlFlag?flags = DefaultObjectFlags) => RequestObject(url, flags, "probenode", DefaultProbeProperties);
public static string Groups(string url = "", UrlFlag?flags = DefaultObjectFlags) => RequestObject(url, flags, "groups", DefaultGroupProperties);
public static string Devices(string url = "", UrlFlag?flags = DefaultObjectFlags) => RequestObject(url, flags, "devices", DefaultDeviceProperties);
public static string Sensors(string url = "", UrlFlag?flags = DefaultObjectFlags) => RequestObject(url, flags, "sensors", DefaultSensorProperties);