1: using System;
2: using System.Collections.Generic;
3: using System.Runtime.Serialization;
4: using System.Threading.Tasks;
5:
6: namespace Ia.Cl.Model
7: {
8: ////////////////////////////////////////////////////////////////////////////
9:
10: /// <summary publish="true">
11: /// Heartbeat class.
12: /// </summary>
13: ///
14: /// <remarks>
15: /// Copyright © 2019-2021 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
16: ///
17: /// This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
18: /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
19: ///
20: /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
21: /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
22: ///
23: /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
24: ///
25: /// Copyright notice: This notice may not be removed or altered from any source distribution.
26: /// </remarks>
27: [DataContract(IsReference = true, Namespace = "kw.com.ia.api.heartbeat", Name = "Heartbeat")]
28: public class Heartbeat
29: {
30: // See https://docs.opsgenie.com/docs/heartbeat-api for referece
31:
32: private static readonly object objectLock = new object();
33:
34: ////////////////////////////////////////////////////////////////////////////
35:
36: /// <summary>
37: ///
38: /// </summary>
39: public Heartbeat() { }
40:
41: /// <summary/>
42: [DataMember(Name = "name")]
43: public string Name { get; set; }
44:
45: /// <summary/>
46: [DataMember(Name = "created")]
47: public DateTime Created { get; set; }
48:
49: ////////////////////////////////////////////////////////////////////////////
50:
51: /// <summary>
52: ///
53: /// </summary>
54: public static async Task SendHeartbeatAsync(string name)
55: {
56: await Ia.Cl.Model.Http.PostAsync<string>("https://api.ia.com.kw", "api/heartbeats/" + name, string.Empty);
57: }
58:
59: /*
60: ////////////////////////////////////////////////////////////////////////////
61:
62: /// <summary>
63: ///
64: /// </summary>
65: public static async Task<List<Heartbeat>> HeartbeatListAsync()
66: {
67: var list = await Ia.Cl.Model.Http.GetAsync<List<Ia.Cl.Model.Heartbeat>>("https://api.ia.com.kw", "api/heartbeats");
68:
69: return list;
70: }
71: */
72:
73: /*
74: ////////////////////////////////////////////////////////////////////////////
75:
76: /// <summary>
77: ///
78: /// </summary>
79: public static List<Heartbeat> HeartbeatList()
80: {
81: var list = Ia.Cl.Model.Http.GetAsync<List<Ia.Cl.Model.Heartbeat>>("https://api.ia.com.kw", "api/heartbeats");
82:
83: return list.Result;
84: }
85: */
86:
87: ////////////////////////////////////////////////////////////////////////////
88: ////////////////////////////////////////////////////////////////////////////
89: }
90:
91: ////////////////////////////////////////////////////////////////////////////
92: ////////////////////////////////////////////////////////////////////////////
93: }