public async Task <PostGatewayDatapointResponse> Handle(PostGatewayDatapointRequest message) { var gatewayResponse = await GetGateway(message.Id.ToString()); if (gatewayResponse.StatusCode == HttpStatusCode.NotFound) { return(new PostGatewayDatapointResponse() { ErrorModel = new ErrorModel(ErrorType.NotFound) }); } var gatewaySettingsResponse = await GetGatewaySettings(message.Id.ToString()); if (gatewaySettingsResponse.StatusCode == HttpStatusCode.NotFound) { return(new PostGatewayDatapointResponse() { ErrorModel = new ErrorModel(ErrorType.NotFound) }); } var datapoint = gatewaySettingsResponse.Data.FirstOrDefault(x => x.Id == message.DatapointId); if (datapoint == null) { return(new PostGatewayDatapointResponse() { ErrorModel = new ErrorModel(ErrorType.NotFound) }); } if (datapoint.IsReadOnly) { return(new PostGatewayDatapointResponse() { ErrorModel = new ErrorModel(ErrorType.UnsupportedMethod) }); } var kolibriResponse = await SaveValueToKolibri(datapoint, message.Value); var response = new PostGatewayDatapointResponse() { Data = new SuccessInfo() { Success = kolibriResponse.StatusCode == HttpStatusCode.OK } }; return(response); }
public async Task <IHttpActionResult> PostDatapoint([FromUri] int id, [FromUri] int datapointId, [FromBody] PostGatewayDatapointBody body) { var request = new PostGatewayDatapointRequest() { Id = id, DatapointId = datapointId, Value = body.Value }; var responseModel = await this.postDatapointHandler.Handle(request); return(this.CreateHttpActionResult(responseModel)); }