Exemplo n.º 1
0
        public ApplianceStatus getApplianceStatus(BaseAppliance appliance)
        {
            ApiResponse <ApplianceStatus.ApplianceStatusModel[]> applianceApiResponse = getApiClient()
                                                                                        .get <ApplianceStatus.ApplianceStatusModel[]>(String.Format(getApiClient().apiPath() + APPLIANCE_STATUS_URL_TEMPLATE,
                                                                                                                                                    appliance.getRoom().getLocation().getId(),
                                                                                                                                                    appliance.getRoom().getId(),
                                                                                                                                                    appliance.getApplianceId()
                                                                                                                                                    ));

            if (applianceApiResponse.getStatusCode() != 200)
            {
                return(null);
            }

            ApplianceStatus.ApplianceStatusModel[] applianceStatusesOptional = applianceApiResponse.getContent();
            ApplianceStatus applianceStatusOptional = null;

            if (applianceStatusesOptional != null)
            {
                ApplianceStatus.ApplianceStatusModel[] applianceStatuses = applianceStatusesOptional;
                ApplianceStatus applianceStatus = new ApplianceStatus(appliance, applianceStatuses);
                applianceStatusOptional = applianceStatus;
            }

            return(applianceStatusOptional);
        }
Exemplo n.º 2
0
        public BaseApplianceData getApplianceData(BaseAppliance appliance, DateTime?from, DateTime?to)
        {
            ApiResponse <BaseApplianceData> applianceApiResponse = getApiClient()
                                                                   .get <BaseApplianceData>(createApplianceDataRequestUrl(appliance, from, to));

            if (applianceApiResponse.getStatusCode() != 200)
            {
                return(null);
            }

            BaseApplianceData applianceOptional = applianceApiResponse.getContent();

            if (applianceOptional != null)
            {
                BaseApplianceData applianceData = applianceOptional;

                switch (applianceData.type)
                {
                case SenseGuardAppliance.TYPE:

                    applianceData = applianceApiResponse.getContentAs <SenseGuardApplianceData>();
                    break;

                case SenseAppliance.TYPE:
                    applianceData = applianceApiResponse.getContentAs <SenseApplianceData>();
                    break;
                }

                applianceData.setAppliance(appliance);
                applianceOptional = applianceData;
            }

            return(applianceOptional);
        }
Exemplo n.º 3
0
        private String createApplianceDataRequestUrl(BaseAppliance appliance, DateTime?from, DateTime?to)
        {
            if (from == null ||
                to == null)
            {
                return(String.Format(getApiClient().apiPath() + APPLIANCE_DATA_URL_TEMPLATE,
                                     appliance.getRoom().getLocation().getId(),
                                     appliance.getRoom().getId(),
                                     appliance.getApplianceId()));
            }

            return(String.Format(getApiClient().apiPath() + APPLIANCE_DATA_WITH_RANGE_URL_TEMPLATE,
                                 appliance.getRoom().getLocation().getId(),
                                 appliance.getRoom().getId(),
                                 appliance.getApplianceId(),
                                 createOndusDateString(from.Value),
                                 createOndusDateString(to.Value)));
        }
Exemplo n.º 4
0
        public BaseAppliance getAppliance(Room inRoom, String applianceId)
        {
            //ApiResponse<List> applianceApiResponse = getApiClient().get<List>(String.Format(getApiClient().apiPath() + APPLIANCE_URL_TEMPLATE, inRoom.getLocation().getId(), inRoom.getId(), applianceId));
            ApiResponse <ArrayList> applianceApiResponse = getApiClient()
                                                           .get <ArrayList>(String.Format(getApiClient().apiPath() + APPLIANCE_URL_TEMPLATE, inRoom.getLocation().getId(), inRoom.getId(), applianceId));

            if (applianceApiResponse.getStatusCode() != 200)
            {
                return(null);
            }

            BaseAppliance     applianceOptional     = null;
            BaseApplianceList applianceListOptional = applianceApiResponse.getContentAs <BaseApplianceList>();

            if (applianceListOptional != null)
            {
                BaseApplianceList applianceList = applianceListOptional;
                if (applianceList.Count == 1)
                {
                    BaseAppliance appliance = applianceList[0];

                    switch (appliance.getType())
                    {
                    case SenseGuardAppliance.TYPE:
                        appliance = applianceApiResponse.getContentAs <SenseGuardApplianceList>()[0];
                        break;

                    case SenseAppliance.TYPE:
                        appliance = applianceApiResponse.getContentAs <SenseApplianceList>()[0];
                        break;
                    }

                    appliance.setRoom(inRoom);
                    applianceOptional = appliance;
                }
            }

            return(applianceOptional);
        }
Exemplo n.º 5
0
 public BaseApplianceData getApplianceData(BaseAppliance appliance)
 {
     return(this.getApplianceData(appliance, null, null));
 }
Exemplo n.º 6
0
        /// <summary>
        /// Retrieves the current status of the appliance. Note that the available properties of the returned ApplianceStatus
        /// object may differ from appliance type to appliance type.
        /// </summary>
        /// <param name="appliance">The BaseAppliance to retrieve command information from</param>
        /// <returns>The ApplianceStatus of the appliance</returns>
        public ApplianceStatus getApplianceStatus(BaseAppliance appliance)
        {
            ApplianceAction action = apiClient.getAction <ApplianceAction>();

            return(action.getApplianceStatus(appliance));
        }
Exemplo n.º 7
0
        /// <summary>
        /// The same as #getApplianceData(BaseAppliance), however, limits the requested data to a specific time range
        /// instead of requesting all data from all time.
        /// </summary>
        /// <param name="appliance">The BaseAppliance to retrieve data from</param>
        /// <param name="from">Needs to be an instance of DateTime which is at least one day before to</param>
        /// <param name="to">Needs to be an instance of DateTime which is at least one day after from</param>
        /// <returns>The SenseGuardApplianceData of the appliance in the given time range</returns>
        public BaseApplianceData getApplianceData(BaseAppliance appliance, DateTime?from = null, DateTime?to = null)
        {
            ApplianceAction action = apiClient.getAction <ApplianceAction>();

            return(action.getApplianceData(appliance, from, to));
        }