internal async Task <NextEvents> GetLastEventOf(string homeId, string personId) { if (!await CheckConnectionAsync().ConfigureAwait(false)) { return(null); } var parameters = HttpUtility.ParseQueryString(string.Empty); parameters["home_id"] = homeId; parameters["person_id"] = personId; using (HttpClient client = new HttpClient()) using (HttpRequestMessage request = new HttpRequestMessage()) { request.Method = HttpMethod.Post; request.RequestUri = new Uri(host + apiPath + "/getlasteventof"); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _accessToken); request.Content = new StringContent(parameters.ToString(), Encoding.UTF8, "application/x-www-form-urlencoded"); HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false); string responseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); NextEvents nextEvents = new NextEvents().FromJson(responseBody); if (nextEvents.Body.Events.Count == 0) // TODO best method to known if a error occurs? { ErrorMessageData errorMessageData = new ErrorMessageData().FromJson(responseBody); _errorMessage = errorMessageData.Error.Message; return(null); } return(nextEvents); } }
internal async Task <bool> GetNextEvents(string homeId, string eventId) { foreach (Home home in Homes) { if (home.Id == homeId) { NextEvents nextEvents = await _aPICommands.GetNextEvents(homeId, eventId).ConfigureAwait(false); if (nextEvents != null) { home.AddEvents(nextEvents.Body.Events); return(true); } } } return(false); }
internal async Task <ObservableCollection <SecurityEvent> > GetLastEventsFor(string homeId, string personId) { ObservableCollection <SecurityEvent> events = new ObservableCollection <SecurityEvent>(); foreach (Home home in Homes) { if (home.Id == homeId) { NextEvents nextEvents = await _aPICommands.GetLastEventOf(homeId, personId).ConfigureAwait(false); if (nextEvents != null) { foreach (HomeData.Event rawEvent in nextEvents.Body.Events) { SecurityEvent newEvent = Home.CreateNewSecurityEvent(rawEvent); events.Add(newEvent); } return(events); } } } return(events); }