// POST: api/RawMetric //[fromBody] string value public void Post([FromBody] RawMetricModel value) { if (value == null) { throw new ArgumentNullException("THE VALUE IS NULL"); } else { SharedVar.MacAddressCheck(value); try { MyCnx = new NpgsqlConnection(SharedVar.Conx); string insert_request = SharedVar.buildInsertRequest(); //La valeur DEFAULT parce que la propriété id est auto incrémenté MyCnx.Open(); MyCmd = new NpgsqlCommand(insert_request, MyCnx); //Définition et ajout des paramètres MyCmd.Parameters.Add(new NpgsqlParameter("id", NpgsqlDbType.Varchar)).Value = value.id; MyCmd.Parameters.Add(new NpgsqlParameter("device_macaddress", NpgsqlDbType.Varchar)).Value = value.device_macaddress; MyCmd.Parameters.Add(new NpgsqlParameter("metric_date", NpgsqlDbType.Timestamp)).Value = value.metric_date; MyCmd.Parameters.Add(new NpgsqlParameter("device_type", NpgsqlDbType.Integer)).Value = value.device_type; MyCmd.Parameters.Add(new NpgsqlParameter("metric_value", NpgsqlDbType.Varchar)).Value = value.metric_value; MyCmd.ExecuteNonQuery(); //Exécution MyCnx.Close(); } catch (Exception e) { throw e; } } }
// GET: api/RawMetric/?id=1223 public List <RawMetricModel> Get(int id) { string select_request = SharedVar.buildSelectRequest(id); List <RawMetricModel> MyData = new List <RawMetricModel>(); NpgsqlDataAdapter da; try { MyCnx = new NpgsqlConnection(SharedVar.Conx); MyCnx.Open(); MyCmd = new NpgsqlCommand(select_request, MyCnx); da = new NpgsqlDataAdapter(MyCmd); NpgsqlDataReader dr = MyCmd.ExecuteReader(); while (dr.Read()) { MyData.Add( new RawMetricModel() { id = (int)dr["id"], device_macaddress = (string)dr["device_macaddress"], device_type = (int)dr["device_type"], metric_date = (DateTime)dr["metric_date"], metric_value = (string)dr["metric_value"] } ); } MyCnx.Close(); return(MyData); } catch (Exception e) { throw e; } }
void Start() { personalid = this.GetComponent <NetworkIdentity>(); sharing = GameObject.Find("SharedValues"); senddata = sharing.GetComponent <SharedVar>(); Menuob = GameObject.Find("NetworkManager"); Time.timeScale = 1.0f; }
public void DataArrayShouldFlowThroughSharedVarInOrder(int timeToWaitWriter, int timeToWaitReader) { // GIVEN var data = new int[10]; var dataReceived = new int[10]; for (int i = 0; i < 10; i++) { data[i] = i; dataReceived[i] = -1; } int id; var svar = new SharedVar <int>(); var reader = svar.GetReader(); var writer = svar.GetWriter(); var isSuccess = reader.TryRegisterReaderHandler(GetReader(timeToWaitReader, dataReceived), out id); Action readData = () => reader.Read(); // WHEN var t1 = Task.Factory.StartNew(GetWriter(timeToWaitWriter, data, writer)); var t2 = Task.Factory.StartNew(readData); var mre = new AutoResetEvent(false); void testFailureAndSet(Task task) { var because = $"all task should be complete, not {task.Status}."; task.Status.Should().Be(TaskStatus.RanToCompletion, because); mre.Set(); } var t = Task.WhenAll(new Task[2] { t1, t2 }); t.ConfigureAwait(false); // THEN t.ContinueWith((i) => testFailureAndSet(i), TaskContinuationOptions.NotOnFaulted); mre.WaitOne(); for (int i = 0; i < 10; i++) { dataReceived[i].Should().Be(i); } }
/// <summary> /// Use SharedVar pass as argument as internal variable. Should be thread safe. /// </summary> /// <param name="var">object of type <paramref SharedVar> use to produce Reader and Writer. </paramref></param> public ReadableMock(SharedVar <TIn> var) { _var = var; (Reader, Writer) = _var.GetReaderWriterCouple(); }