コード例 #1
0
        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);
                }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }