diff --git a/UptimeSharp/Components/Alert.cs b/UptimeSharp/Components/Alert.cs
index 47cf705..1e09e3c 100644
--- a/UptimeSharp/Components/Alert.cs
+++ b/UptimeSharp/Components/Alert.cs
@@ -14,9 +14,11 @@ namespace UptimeSharp
///
/// Retrieve specified alert contacts by supplying IDs for them.
///
- public List RetrieveAlerts(int[] alertIDs = null)
+ public List RetrieveAlerts(params int[] alertIDs)
{
- return Get("getAlertContacts").Items;
+ Parameter alerts = Parameter("alertcontacts", alertIDs.Length > 0 ? string.Join("-", alertIDs) : null);
+
+ return Get("getAlertContacts", alerts).Items;
}
@@ -29,13 +31,15 @@ namespace UptimeSharp
///
public bool AddAlert(AlertType type, string value)
{
- List parameters = new List()
+ if (type == AlertType.SMS)
{
- Utilities.CreateParam("alertContactType", (int)type),
- Utilities.CreateParam("alertContactValue", value)
- };
+ throw new APIException("AlertType.SMS is not supported by the UptimeRobot API");
+ }
- return Get("newAlertContact", parameters).Status;
+ return Get("newAlertContact",
+ Parameter("alertContactType", (int)type),
+ Parameter("alertContactValue", value)
+ ).Status;
}
@@ -47,13 +51,7 @@ namespace UptimeSharp
///
public bool AddAlert(Alert alert)
{
- List parameters = new List()
- {
- Utilities.CreateParam("alertContactType", (int)alert.Type),
- Utilities.CreateParam("alertContactValue", alert.Value)
- };
-
- return Get("newAlertContact", parameters).Status;
+ return AddAlert(alert.Type, alert.Value);
}
@@ -65,12 +63,7 @@ namespace UptimeSharp
///
public bool DeleteAlert(int alertID)
{
- List parameters = new List()
- {
- Utilities.CreateParam("alertContactID", alertID)
- };
-
- return Get("deleteAlertContact", parameters).Status;
+ return Get("deleteAlertContact", Parameter("alertContactID", alertID)).Status;
}
diff --git a/UptimeSharp/Components/Monitor.cs b/UptimeSharp/Components/Monitor.cs
index ee1c486..75fb432 100644
--- a/UptimeSharp/Components/Monitor.cs
+++ b/UptimeSharp/Components/Monitor.cs
@@ -187,7 +187,7 @@ namespace UptimeSharp
public bool Modify(int monitorID, MonitorParameters parameters)
{
List paramList = parameters.Convert();
- paramList.Add(Utilities.CreateParam("monitorID", monitorID));
+ paramList.Add(Parameter("monitorID", monitorID));
return Get("editorMonitor", paramList).Status;
}
@@ -227,10 +227,10 @@ namespace UptimeSharp
// fix bad behaviour in API if no subtype is submitted
if(parameters.Subtype == Subtype.Unknown)
{
- paramList.Add(Utilities.CreateParam("monitorSubType", 0));
+ paramList.Add(Parameter("monitorSubType", 0));
}
- paramList.Add(Utilities.CreateParam("monitorID", monitor.ID));
+ paramList.Add(Parameter("monitorID", monitor.ID));
return Get("editMonitor", paramList).Status;
}
diff --git a/UptimeSharp/Models/Parameters/MonitorParameters.cs b/UptimeSharp/Models/Parameters/MonitorParameters.cs
index 6287929..6a7e766 100644
--- a/UptimeSharp/Models/Parameters/MonitorParameters.cs
+++ b/UptimeSharp/Models/Parameters/MonitorParameters.cs
@@ -99,53 +99,40 @@ namespace UptimeSharp.Models
{
List parameters = new List();
- if(!string.IsNullOrEmpty(Name))
- {
- parameters.Add(Utilities.CreateParam("monitorFriendlyName", Name));
- }
-
- if(!string.IsNullOrEmpty(Uri))
- {
- parameters.Add(Utilities.CreateParam("monitorURL", Uri));
- }
+ parameters.Add(UptimeClient.Parameter("monitorFriendlyName", Name));
+ parameters.Add(UptimeClient.Parameter("monitorURL", Uri));
if(Type != null && (int)Type != 0)
{
- parameters.Add(Utilities.CreateParam("monitorType", (int)Type));
+ parameters.Add(UptimeClient.Parameter("monitorType", (int)Type));
}
// special params for port listener
if (Type == Type.Port && Subtype != Subtype.Unknown && Port.HasValue)
{
- parameters.Add(Utilities.CreateParam("monitorSubType", (int)Subtype));
+ parameters.Add(UptimeClient.Parameter("monitorSubType", (int)Subtype));
if (Subtype == Subtype.Custom)
{
- parameters.Add(Utilities.CreateParam("monitorPort", Port));
+ parameters.Add(UptimeClient.Parameter("monitorPort", Port));
}
}
// keyword listener
if (Type == Type.Keyword && !string.IsNullOrEmpty(KeywordValue))
{
- parameters.Add(Utilities.CreateParam("monitorKeywordType", (int)KeywordType));
- parameters.Add(Utilities.CreateParam("monitorKeywordValue", KeywordValue));
+ parameters.Add(UptimeClient.Parameter("monitorKeywordType", (int)KeywordType));
+ parameters.Add(UptimeClient.Parameter("monitorKeywordValue", KeywordValue));
}
// HTTP basic auth credentials
- if (!string.IsNullOrEmpty(HTTPUsername))
- {
- parameters.Add(Utilities.CreateParam("monitorHTTPUsername", HTTPUsername));
- }
- if (!string.IsNullOrEmpty(HTTPPassword))
- {
- parameters.Add(Utilities.CreateParam("monitorHTTPPassword", HTTPPassword));
- }
+ parameters.Add(UptimeClient.Parameter("monitorHTTPUsername", HTTPUsername));
+ parameters.Add(UptimeClient.Parameter("monitorHTTPPassword", HTTPPassword));
// alert notifications
if (Alerts != null && Alerts.Length > 0)
{
- parameters.Add(Utilities.CreateParam("monitorAlertContacts", string.Join("-", Alerts)));
+ parameters.Add(UptimeClient.Parameter("monitorAlertContacts", string.Join("-", Alerts)));
}
return parameters;
diff --git a/UptimeSharp/Models/Parameters/RetrieveParameters.cs b/UptimeSharp/Models/Parameters/RetrieveParameters.cs
index 2cc7b5f..e29c0a5 100644
--- a/UptimeSharp/Models/Parameters/RetrieveParameters.cs
+++ b/UptimeSharp/Models/Parameters/RetrieveParameters.cs
@@ -50,24 +50,16 @@ namespace UptimeSharp.Models
{
List parameters = new List();
- if (Monitors != null)
- {
- parameters.Add(Utilities.CreateParam("monitors", String.Join("-", Monitors)));
- }
- if (CustomUptimeRatio != null)
- {
- parameters.Add(Utilities.CreateParam("customUptimeRatio", String.Join("-", CustomUptimeRatio)));
- }
+ parameters.Add(UptimeClient.Parameter("monitors", String.Join("-", Monitors)));
+ parameters.Add(UptimeClient.Parameter("customUptimeRatio", String.Join("-", CustomUptimeRatio)));
+ parameters.Add(UptimeClient.Parameter("showMonitorAlertContacts", (bool)ShowAlerts ? "1" : "0"));
+
if (ShowLog.HasValue)
{
string showLog = (bool)ShowLog ? "1" : "0";
- parameters.Add(Utilities.CreateParam("logs", showLog));
- parameters.Add(Utilities.CreateParam("alertContacts", showLog));
- parameters.Add(Utilities.CreateParam("showTimezone", showLog));
- }
- if (ShowAlerts.HasValue)
- {
- parameters.Add(Utilities.CreateParam("showMonitorAlertContacts", (bool)ShowAlerts ? "1" : "0"));
+ parameters.Add(UptimeClient.Parameter("logs", showLog));
+ parameters.Add(UptimeClient.Parameter("alertContacts", showLog));
+ parameters.Add(UptimeClient.Parameter("showTimezone", showLog));
}
return parameters;
diff --git a/UptimeSharp/Models/Response/DefaultResponse.cs b/UptimeSharp/Models/Response/DefaultResponse.cs
index 3ade291..9c4d9aa 100644
--- a/UptimeSharp/Models/Response/DefaultResponse.cs
+++ b/UptimeSharp/Models/Response/DefaultResponse.cs
@@ -7,8 +7,5 @@ namespace UptimeSharp.Models
/// Default Response
///
[DataContract]
- internal class DefaultResponse : ResponseBase
- {
-
- }
+ internal class DefaultResponse : ResponseBase {}
}
diff --git a/UptimeSharp/UptimeClient.cs b/UptimeSharp/UptimeClient.cs
index 506acaa..1e0323f 100644
--- a/UptimeSharp/UptimeClient.cs
+++ b/UptimeSharp/UptimeClient.cs
@@ -117,7 +117,12 @@ namespace UptimeSharp
if (parameters != null)
{
parameters.ForEach(
- param => request.AddParameter(param)
+ param => {
+ if(param.Value != null)
+ {
+ request.AddParameter(param);
+ }
+ }
);
}
@@ -126,37 +131,31 @@ namespace UptimeSharp
}
- protected string Get(string resource, List parameters = null)
+ ///
+ /// Fetches a typed resource
+ ///
+ ///
+ /// Requested resource
+ /// The parameters.
+ ///
+ protected T Get(string resource, params Parameter[] parameters) where T : class, new()
{
- var request = new RestRequest(resource, Method.GET);
+ List parameterList = new List();
+ parameterList.AddRange(parameters);
- // enumeration for params
- if (parameters != null)
- {
- parameters.ForEach(
- param => request.AddParameter(param)
- );
- }
-
- // do the request
- return Request(request);
+ return Get(resource, parameterList);
}
- /////
- ///// Puts an action
- /////
- ///// The action parameter.
- /////
- //protected bool PutSendAction(ActionParameter actionParameter)
- //{
- // ModifyParameters parameters = new ModifyParameters()
- // {
- // Actions = new List() { actionParameter }
- // };
-
- // return Get("send", parameters.Convert(), true).Status;
- //}
+ public static Parameter Parameter(string name, object value)
+ {
+ return new Parameter()
+ {
+ Name = name,
+ Value = value,
+ Type = ParameterType.GetOrPost
+ };
+ }
/////
diff --git a/UptimeSharp/UptimeSharp.csproj b/UptimeSharp/UptimeSharp.csproj
index b6dd36d..d07498e 100644
--- a/UptimeSharp/UptimeSharp.csproj
+++ b/UptimeSharp/UptimeSharp.csproj
@@ -66,7 +66,6 @@
-
diff --git a/UptimeSharp/Utilities.cs b/UptimeSharp/Utilities.cs
deleted file mode 100644
index 2451d04..0000000
--- a/UptimeSharp/Utilities.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-using RestSharp;
-using System;
-using System.Collections.Generic;
-
-namespace UptimeSharp
-{
- ///
- /// General utilities
- ///
- internal class Utilities
- {
-
- ///
- /// converts a bool to a string for GET param
- ///
- /// The value.
- /// A string representation of the boolean
- public static string Bool(bool? value)
- {
- return value != null ? ((bool)value ? "1" : "0") : null;
- }
-
-
- ///
- /// converts DateTime to an UNIX timestamp
- ///
- /// The date.
- /// UNIX timestamp
- public static int? GetUnixTimestamp(DateTime? dateTime)
- {
- if (dateTime == null)
- {
- return null;
- }
-
- return (int)((DateTime)dateTime - new DateTime(1970, 1, 1)).TotalSeconds;
- }
-
-
- ///
- /// Creates a Parameter object.
- ///
- /// The name.
- /// The value.
- /// The type.
- ///
- public static Parameter CreateParam(string name, object value, ParameterType type = ParameterType.GetOrPost)
- {
- return new Parameter() { Name = name, Value = value, Type = type };
- }
-
-
- ///
- /// Creates a Parameter object within a list.
- ///
- /// The name.
- /// The value.
- /// The type.
- ///
- public static List CreateParamInList(string name, object value, ParameterType type = ParameterType.GetOrPost)
- {
- return new List() { CreateParam(name, value, type) };
- }
-
-
- ///
- /// Convert a dictionary to a list
- ///
- ///
- /// The items.
- ///
- public static List DictionaryToList(Dictionary items) where T : new()
- {
- if (items == null)
- {
- return null;
- }
-
- var itemEnumerator = items.GetEnumerator();
- List list = new List();
-
- while (itemEnumerator.MoveNext())
- {
- list.Add(itemEnumerator.Current.Value);
- }
-
- return list;
- }
- }
-}