Esempio n. 1
0
        // 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;
                }
            }
        }
Esempio n. 2
0
        // 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;
            }
        }
Esempio n. 3
0
    void Start()
    {
        personalid = this.GetComponent <NetworkIdentity>();
        sharing    = GameObject.Find("SharedValues");
        senddata   = sharing.GetComponent <SharedVar>();
        Menuob     = GameObject.Find("NetworkManager");

        Time.timeScale = 1.0f;
    }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
 /// <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();
 }