public async Task <IHttpActionResult> Post([FromBody] KolibriValue kolibriValue) { if (kolibriValue == null) { return(BadRequest()); } var kolibriRequest = new WriteRpcRequest() { Params = new WriteRpcRequestParam() { Nodes = new Collection <WriteRpcRequestNodeParam>(new List <WriteRpcRequestNodeParam>() { new WriteRpcRequestNodeParam() { Value = Convert.ToInt32(kolibriValue.Value), Path = this.GetPath(kolibriValue.HexAddress) } }) } }; try { await this.kolibriClient.RequestAsync <WriteRpcResponse>(kolibriRequest); return(Ok()); } catch (KolibriApiException ex) { return(BadRequest(ex.KolibriErrorMessage)); } }
/// <summary> /// Assigns the values. /// </summary> /// <param name="setting">The setting.</param> /// <param name="kolibriValue">The kolibri values.</param> /// <returns></returns> private GatewayDatapoint AssignValues(GatewaySetting setting, KolibriValue kolibriValue) { var datapoint = new GatewayDatapoint() { Id = setting.Id, Description = setting.Description, HexAdress = setting.HexAdress, IsReadOnly = setting.IsReadOnly, Value = this.valueConverter.ConvertFromDevice(setting, kolibriValue.Value) }; return(datapoint); }
/// <summary> /// Saves the value to kolibri. /// </summary> /// <param name="setting">The setting.</param> /// <param name="value">The value.</param> /// <returns></returns> private Task <IRestResponse> SaveValueToKolibri(GatewaySetting setting, string value) { var restClient = new RestClient(ConfigurationManager.AppSettings["ServiceEndpoints:Kolibri"]); var kolibriRequest = new RestRequest("kolibri", Method.POST); var body = new KolibriValue() { Value = this.valueConverter.ConvertToDevice(setting, value), HexAddress = setting.HexAdress }; kolibriRequest.RequestFormat = DataFormat.Json; kolibriRequest.AddBody(body); return(restClient.ExecuteTaskAsync(kolibriRequest)); }