Esempio n. 1
0
        public void PostData(PostDataRequest request)
        {
            var insertTemperatureCommand = new SqlCommandInfo("INSERT INTO TemperatureLog(temperature) VALUES (@temperature)");

            insertTemperatureCommand.Parameters.Add("temperature", request.Temperature);
            _sqlExecutionHelper.ExecuteNonQuery(insertTemperatureCommand);

            var insertDiagnosticInfoCommand = new SqlCommandInfo("INSERT INTO DiagnosticInfoLog(uptime) VALUES (@uptime)");

            insertDiagnosticInfoCommand.Parameters.Add("uptime", request.Uptime);
            _sqlExecutionHelper.ExecuteNonQuery(insertDiagnosticInfoCommand);

            foreach (var deviceState in request.DeviceStates)
            {
                onDeviceStateChanged(deviceState.Key, deviceState.Value);
            }
        }
Esempio n. 2
0
        public void MergeDeviceState <T>(Devices device, string fieldName, T fieldValue)
        {
            string commandText = " MERGE DeviceStates AS target" +
                                 $" USING(SELECT @device, @fieldValue) AS source (device, {fieldName})" +
                                 " ON(target.device = source.device)" +
                                 " WHEN MATCHED THEN" +
                                 $" UPDATE SET {fieldName} = source.{fieldName}" +
                                 " WHEN NOT MATCHED THEN" +
                                 $" INSERT(device, {fieldName})" +
                                 $" VALUES(source.device, source.{fieldName});";

            var mergeCommand = new SqlCommandInfo(commandText);

            mergeCommand.Parameters.Add("device", device);
            mergeCommand.Parameters.Add("fieldValue", fieldValue);

            SqlExecutionHelper.ExecuteNonQuery(mergeCommand);
        }