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)); }