diff --git a/Assets/github-header.png b/Assets/github-header.png new file mode 100644 index 0000000..a5cf397 Binary files /dev/null and b/Assets/github-header.png differ diff --git a/Assets/uptimesharp.png b/Assets/uptimesharp.png new file mode 100644 index 0000000..9afd5bd Binary files /dev/null and b/Assets/uptimesharp.png differ diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..428b84a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,15 @@ +### 2.0.0 (2014-02-02) + +- Re-publish UptimeSharp as a newly created PCL with support for multiple platforms + +### 0.2.0 (2013-08-28) + +- Added request validation + +### 0.1.1 (2013-08-26) + +- Adding a Port monitor works now + +### 0.1.0 (2013-08-25) + +- Initial release \ No newline at end of file diff --git a/README.md b/README.md index 6769fa4..5759041 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,18 @@ -![UptimeSharp](https://raw.github.com/ceee/UptimeSharp/master/UptimeSharp.Website/Assets/Images/github-header.png) +![UptimeSharp](https://raw.github.com/ceee/UptimeSharp/master/Assets/github-header.png) -**UptimeSharp** is a C#.NET class library that integrates the [UptimeRobot API](http://www.uptimerobot.com/api.asp). +**UptimeSharp** is a .NET portable class library that integrates the [UptimeRobot API](http://www.uptimerobot.com/api.asp). The wrapper consists of 2 parts: - Get and modify monitors - Get and modify alert contacts -[uptimesharp.frontendplay.com](http://uptimesharp.frontendplay.com/) - -## Install using NuGet +## Install UptimeSharp using [NuGet](https://www.nuget.org/packages/UptimeSharp/) ``` Install-Package UptimeSharp ``` -[nuget.org/packages/UptimeSharp](https://www.nuget.org/packages/UptimeSharp/) - ## Usage Example Get your [API Key UptimeRobot](http://uptimerobot.com/mySettings.asp) (left section under "API Information") @@ -37,8 +33,10 @@ UptimeClient _client = new UptimeClient("[YOUR_API_KEY]"); Do a simple request - e.g. get all your monitors: ```csharp -_client.GetMonitors().ForEach( - item => Console.WriteLine(item.Name + " | " + item.Type) +List monitors = await _client.GetMonitors() + +monitors.ForEach( + item => Debug.WriteLine(item.Name + " | " + item.Type) ); ``` @@ -64,22 +62,22 @@ Get your [API Key UptimeRobot](http://uptimerobot.com/mySettings.asp) (left sect Get list of all monitors: ```csharp -List items = _client.GetMonitors(); +List items = await _client.GetMonitors(); ``` Get monitors by ID - or a single monitor: ```csharp -List items = _client.GetMonitors(new int[]{ 12891, 98711 }); +List items = await _client.GetMonitors(new string[]{ 12891, 98711 }); // or -Monitor item = _client.GetMonitor(12891); +Monitor item = await _client.GetMonitor("12891"); ``` Provide additional params for more data: ```csharp -List items = _client.GetMonitors( - monitorIDs: new int[]{ 12891, 98711 }, +List items = await _client.GetMonitors( + monitorIDs: new string[]{ 12891, 98711 }, customUptimeRatio: new float[] { 7, 30, 45 }, showLog: true, showAlerts: true @@ -101,15 +99,15 @@ List items = _client.GetMonitors( Adds/creates a new monitor. ```csharp -bool AddMonitor( +Task AddMonitor( string name, - string uri, + string target, Type type = Type.HTTP, Subtype subtype = Subtype.Unknown, int? port = null, string keywordValue = null, KeywordType keywordType = KeywordType.Unknown, - int[] alerts = null, + string[] alerts = null, string HTTPUsername = null, string HTTPPassword = null ) @@ -118,9 +116,9 @@ bool AddMonitor( Example - Watch a SMTP Server: ```csharp -bool isSuccess = _client.AddMonitor( +Monitor monitor = await _client.AddMonitor( name: "cee", - uri: "127.0.0.1", + target: "127.0.0.1", type: Type.Port, subtype: Subtype.SMTP ); @@ -128,7 +126,7 @@ bool isSuccess = _client.AddMonitor( `name`: A friendly name for the new monitor
-`uri`: The URI or IP to watch +`target`: The URI or IP to watch
`type`: The type of the monitor (see [# Monitor Types](#monitor-types))
@@ -156,14 +154,14 @@ If you've selected `Type.Port` for example, UptimeSharp will ignore the `keyword Delete a monitor by ID: ```csharp -bool isSuccess = _client.DeleteMonitor(12891); +bool isSuccess = await _client.DeleteMonitor("12891"); ``` Delete a monitor by a Monitor instance: ```csharp // Monitor myMonitor = ... -bool isSuccess = _client.DeleteMonitor(myMonitor); +bool isSuccess = await _client.DeleteMonitor(myMonitor); ``` @@ -174,7 +172,7 @@ In order to modify an existing monitor, just alter the properties of the Monitor ```csharp // Monitor myMonitor = ... myMonitor.Name = "my new name :-)"; -bool isSuccess = _client.ModifyMonitor(myMonitor); +bool isSuccess = await _client.ModifyMonitor(myMonitor); ``` **Important:** It is not possible to alter the `Type` of a monitor after its creation! In case you want to do this, you have to delete the monitor and create a new one with the changed type. @@ -184,45 +182,45 @@ bool isSuccess = _client.ModifyMonitor(myMonitor); Retrieve all alerts: ```csharp -List items = _client.GetAlerts(); +List items = await _client.GetAlerts(); ``` Retrieve alerts by IDs: ```csharp -List items = _client.GetAlerts(new string[]{ "12897", "98711" }); +List items = await _client.GetAlerts(new string[]{ "12897", "98711" }); ``` Retrieve a specific alert: ```csharp -Alert item = _client.GetAlert("12897"); +Alert item = await _client.GetAlert("12897"); ``` Adds an alert _(Due to UptimeRobot API limitations SMS and Twitter alert contact types are not supported yet)_: ```csharp -bool isSuccess = _client.AddAlert(AlertType.Email, "uptimesharp@outlook.com"); +Alert alert = await _client.AddAlert(AlertType.Email, "uptimesharp@outlook.com"); ``` Adds an alert from instance: ```csharp // Alert myAlert = ... -bool isSuccess = _client.AddAlert(myAlert); +Alert alert = await _client.AddAlert(myAlert); ``` Deletes an alert: ```csharp -bool isSuccess = _client.DeleteAlert("12897"); +bool isSuccess = await _client.DeleteAlert("12897"); ``` Deletes an alert from instance: ```csharp // Alert myAlert = ... -bool isSuccess = _client.DeleteAlert(myAlert); +bool isSuccess = await _client.DeleteAlert(myAlert); ``` ## Monitor Types @@ -260,22 +258,28 @@ If you want to monitor a port, you need to specify a **subType** which is a comm --- -## Release History -- 2013-08-28 v0.2.0 Request Validation -- 2013-08-26 v0.1.1 Adding a Port monitor works now -- 2013-08-25 v0.1.0 Monitor and Alert APIs +## Supported platforms + +UptimeSharp is a **Portable Class Library**, therefore it's compatible with multiple platforms: + +- **.NET** >= 4.5 (including WPF) +- **Silverlight** >= 4 +- **Windows Phone** >= 7.5 +- **Windows Store** ## Dependencies -- [RestSharp](http://restsharp.org/) -- [ServiceStack.Text](https://github.com/ServiceStack/ServiceStack.Text) +- [Microsoft.Bcl.Async](https://www.nuget.org/packages/Microsoft.Bcl.Async/) +- [Microsoft.Net.Http](https://www.nuget.org/packages/Microsoft.Net.Http/) +- [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json/) +- [PropertyChanged.Fody](https://github.com/Fody/PropertyChanged) ## Contributors -| [![twitter/artistandsocial](http://gravatar.com/avatar/9c61b1f4307425f12f05d3adb930ba66?s=70)](http://twitter.com/artistandsocial "Follow @artistandsocial on Twitter") | -|---| -| [Tobias Klika @ceee](https://github.com/ceee) | +| [![ceee](http://gravatar.com/avatar/9c61b1f4307425f12f05d3adb930ba66?s=70)](https://github.com/ceee "Tobias Klika") | +|---| +| [ceee](https://github.com/ceee) | ## License [MIT License](https://github.com/ceee/UptimeSharp/blob/master/LICENSE-MIT) diff --git a/UptimeSharp.nuspec b/UptimeSharp.nuspec deleted file mode 100644 index e0f44f0..0000000 --- a/UptimeSharp.nuspec +++ /dev/null @@ -1,40 +0,0 @@ - - - - UptimeSharp - 0.2.0 - UptimeSharp - Tobias Klika - Tobias Klika - https://raw.github.com/ceee/UptimeSharp/master/LICENSE-MIT - http://uptimesharp.frontendplay.com - http://uptimesharp.frontendplay.com/Assets/Images/uptimesharp.png - false - Assembly for accessing the UptimeRobot API - en-US - - - - Copyright by cee, 2013 - UptimeSharp UptimeRobot Uptime Robot API Tobias Klika cee RestSharp - - - - - - - - - - - - - - - - - - - diff --git a/UptimeSharp/PocketSharp.nuspec b/UptimeSharp/PocketSharp.nuspec new file mode 100644 index 0000000..62bc739 --- /dev/null +++ b/UptimeSharp/PocketSharp.nuspec @@ -0,0 +1,23 @@ + + + + $id$ + $version$ + $title$ + $author$ + $author$ + https://raw.github.com/ceee/UptimeSharp/master/LICENSE-MIT + https://github.com/ceee/UptimeSharp + https://raw.github.com/ceee/UptimeSharp/master/Assets/uptimesharp.png + false + UptimeSharp is a .NET portable class library that integrates the UptimeRobot API. + en-US + + + + Copyright by cee, 2014 + UptimeSharp UptimeRobot Uptime Robot Tobias Klika cee SDK Server + + \ No newline at end of file