private async Task <DomoticzMotionDetectionClientModel> GetMotionDetectionClientModel(Device device, bool onlyExportOneHour) { using (var client = new HttpClient()) { var url = $"http://{_domoticzSettings.Host}:{_domoticzSettings.Port}/json.htm?type=lightlog&idx={device.DomoticzMotionDetectionIdx}"; var response = await client.GetStringAsync(url); var data = JsonConvert.DeserializeObject <dynamic>(response); JArray resultList = data.result; if (resultList == null) { return(null); } // Cast resultList to objects var values = resultList.ToObject <List <DomoticzMotionDetection> >(); if (onlyExportOneHour) { var timeLimit = DateTime.Today.AddHours(-1); values = values .Where(a_item => a_item.Date.Value.Date >= timeLimit) .ToList(); } var clientModel = new DomoticzMotionDetectionClientModel { Device = device, MotionDetections = values }; return(clientModel); } }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='clientModel'> /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task ExporterInsertMotionDetectionValuesPostAsync(this IHouseDBAPI operations, DomoticzMotionDetectionClientModel clientModel = default(DomoticzMotionDetectionClientModel), CancellationToken cancellationToken = default(CancellationToken)) { (await operations.ExporterInsertMotionDetectionValuesPostWithHttpMessagesAsync(clientModel, null, cancellationToken).ConfigureAwait(false)).Dispose(); }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='clientModel'> /// </param> public static void ExporterInsertMotionDetectionValuesPost(this IHouseDBAPI operations, DomoticzMotionDetectionClientModel clientModel = default(DomoticzMotionDetectionClientModel)) { operations.ExporterInsertMotionDetectionValuesPostAsync(clientModel).GetAwaiter().GetResult(); }