public EwhAction(ActionCodes action)
 {
 }
Exemple #2
0
        public CallResult SendRequest(ActionCodes action)
        {
            CallResult result = new CallResult
            {
                calledAction = action
            };

            /*
             * HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
             * request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
             *
             * request.Method = "GET";
             * request.ContentType = "text/json";
             * string results = string.Empty;
             *
             * //search word
             * switch (action)
             * {
             *  case ActionCodes.closeRoof: request.Headers.Add("action ", HttpUtility.UrlEncode("close")); break;
             *  case ActionCodes.openRoof: request.Headers.Add("action ", HttpUtility.UrlEncode("open")); break;
             *  case ActionCodes.roofStatus: request.Headers.Add("action ", HttpUtility.UrlEncode("status")); break;
             *  default:  result.returnCode = ReturnCodes.commandError; result.resultString = "No action given"; return result;
             * }
             *
             * request.Headers.Add("id", HttpUtility.UrlEncode(Password));
             *
             * string returnedData;
             *
             * using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
             * using (Stream stream = response.GetResponseStream())
             * using (StreamReader reader = new StreamReader(stream))
             * {
             *  returnedData = reader.ReadToEnd();
             * }
             *
             * switch (returnedData)
             * {
             *  case "Ok":      result.returnCode = ReturnCodes.commandAccepted; break;
             *  case "Error":   result.returnCode = ReturnCodes.commandError; break;
             *  case "Open":    result.returnCode = ReturnCodes.roofOpen; break;
             *  case "Opening": result.returnCode = ReturnCodes.roofOpening; break;
             *  case "Closed": result.returnCode = ReturnCodes.roofClosed; break;
             *  case "Closing": result.returnCode = ReturnCodes.roofClosing; break;
             * }*/

            // Hack begin
            RestRequest requestLocal;

            switch (action)
            {
            case ActionCodes.closeRoof: requestLocal = new RestRequest("remobs?action=close", Method.GET); break;

            case ActionCodes.openRoof: requestLocal = new RestRequest("remobs?action=open", Method.GET); break;

            case ActionCodes.roofStatus: requestLocal = new RestRequest("remobs?action=status", Method.GET); break;

            default: result.returnCode = ReturnCodes.commandError; result.resultString = "No action given"; return(result);
            }

            requestLocal.AddParameter("key", APIKey); // Setze API key


            // execute the request
            //IRestResponse<RestCallResult> response = client.Execute<RestCallResult>(requestLocal);
            IRestResponse response = client.Execute(requestLocal);
            // var content = response.Content; // raw content as string
            var JSONObj = JsonConvert.DeserializeObject <RestCallResult>(response.Content);

            if (JSONObj.msg == "invalid key")
            {
                result.returnCode = ReturnCodes.credentialError;
                return(result);
            }
            //JSONObj.msg == "invalid key"
            //if (JSONObj.ack)
            //{
            switch (JSONObj.stext)
            {
            case "Ok": result.returnCode = ReturnCodes.commandAccepted; break;

            case "Error": result.returnCode = ReturnCodes.commandError; break;

            case "open": result.returnCode = ReturnCodes.roofOpen; break;

            case "opening": result.returnCode = ReturnCodes.roofOpening; break;

            case "closed": result.returnCode = ReturnCodes.roofClosed; break;

            case "closeing": result.returnCode = ReturnCodes.roofClosing; break;
            }

            /*} else if (JSONObj.val=="true")
             *  {
             *  // Command to open/close accepted
             *
             * }*/

            // Hack end
            return(result);
        }
 public EwhAction InitAction(ActionCodes action)
 {
     throw new NotImplementedException();
 }