public string JEEUpdateDB(MetricContract metric)
        {
            if (!(metric == null))
            {
                Connection connection = new Connection(url);
                var        json       = new JavaScriptSerializer().Serialize(metric);
                Task.Run(() => connection.sendData(httpVerb.POST, "/addMetric", json));

                if (metric.type > 1 && metric.type < 7)
                {
                    var collection = createDatabase();
                    var filter     = Builders <CalculatedMetrics> .Filter.Eq("deviceMAC", metric.mac);

                    if (collection.Find(filter).ToList().Count == 0)
                    {
                        InsertMetrics(new CalculatedMetrics(float.Parse(metric.value), float.Parse(metric.value), float.Parse(metric.value), float.Parse(metric.value), float.Parse(metric.value), float.Parse(metric.value), float.Parse(metric.value), float.Parse(metric.value), float.Parse(metric.value), metric.mac));
                    }
                    else
                    {
                        //Mise a jour de la liste de valeurs


                        CalculatedMetrics calculated = new CalculatedMetrics();

                        calculated.dayMin = updateMinimum(metric, "day", collection, filter, connection);
                        calculated.dayMax = updateMaximum(metric, "day", collection, filter, connection);
                        calculated.dayAvg = updateAverage(metric, "day", collection, filter, connection);

                        calculated.weekMin = updateMinimum(metric, "week", collection, filter, connection);
                        calculated.weekMax = updateMaximum(metric, "week", collection, filter, connection);
                        calculated.weekAvg = updateAverage(metric, "week", collection, filter, connection);

                        calculated.monthMin = updateMinimum(metric, "month", collection, filter, connection);
                        calculated.monthMax = updateMaximum(metric, "month", collection, filter, connection);
                        calculated.monthAvg = updateAverage(metric, "month", collection, filter, connection);

                        updateDb(calculated, collection, filter);
                    }
                    return(" UPDATE SUCCESS");
                }
                else
                {
                    return("wrong device Type");
                }
            }
            else
            {
                return("parameter is null");
            }
        }
        private float updateMaximum(MetricContract metric, string timeSpan, IMongoCollection <CalculatedMetrics> collection, FilterDefinition <CalculatedMetrics> filter, Connection connection)
        {
            string urlTmp = url + "/device/" + metric.mac + "/" + timeSpan;
            string res    = connection.getData(httpVerb.GET, urlTmp);
            List <MetricForCalculation> result = new List <MetricForCalculation>();

            result = JsonConvert.DeserializeObject <List <MetricForCalculation> >(res);

            float higher = float.Parse(metric.value);

            if (result != null && result.Count > 0)
            {
                foreach (var item in result)
                {
                    if (higher < float.Parse(item.value))
                    {
                        higher = float.Parse(item.value);
                    }
                }
            }
            return(higher);
        }
        public float updateAverage(MetricContract metric, string timeSpan, IMongoCollection <CalculatedMetrics> collection, FilterDefinition <CalculatedMetrics> filter, Connection connection)
        {
            //var filter = Builders<CalculatedMetrics>.Filter.Eq("deviceMAC", metric.mac);

            string urlTmp = url + "/device/" + metric.mac + "/" + timeSpan;
            string res    = connection.getData(httpVerb.GET, urlTmp);
            List <MetricForCalculation> result = new List <MetricForCalculation>();

            result = JsonConvert.DeserializeObject <List <MetricForCalculation> >(res);

            //calcul de moyenne
            float total = 0;

            if (result != null && result.Count > 0)
            {
                foreach (var item in result)
                {
                    total = total + float.Parse(item.value);
                }
                float moyenne = total / result.Count;
                return(moyenne);
            }
            return(float.Parse(metric.value));
        }