public object GetGprsSensorData(string sensors, DateTime startdate, DateTime enddate, int interval, string datename) { var listMonitor = new DAL.Data().GetMonitorData(sensors, startdate, enddate, interval, datename).OrderBy(d => d.SensorId); // return listMonitor; var listOriginal = new DAL.Data().GetOriginalData(sensors, startdate, enddate, interval, datename).OrderBy(d => d.SensorId); var query = from m in listMonitor from o in listOriginal where m.SensorId == o.SensorId && m.AcquisitionTime == o.AcquisitionTime select new { sensorId = m.SensorId, location = m.Location, originalColumn = o.Columns, originalUnit = o.Unit, originalValue = o.Values, calculatedColumn = m.Columns, calculatedUnit = m.Unit, calculatedValue = m.Values, acquisitiontime = m.AcquisitionTime }; var list = query.ToList(); // return list; var json = new JArray(list.GroupBy(g => new { g.sensorId, g.location, g.calculatedColumn, g.calculatedUnit, g.originalColumn, g.originalUnit }) .Select(s => new JObject( new JProperty("sensorid", s.Key.sensorId), new JProperty("location", s.Key.location), new JProperty("columns", new JObject( new JProperty("originalColumn", s.Key.originalColumn), new JProperty("calculatedColumn", s.Key.calculatedColumn) )), new JProperty("units", new JObject( new JProperty("originalUnit", s.Key.originalUnit), new JProperty("calculatedUnit", s.Key.calculatedUnit) )), new JProperty("data", new JArray(s.Select(v => new JObject( new JProperty("originalValue", v.originalValue), new JProperty("calculatedValue", v.calculatedValue), new JProperty("acquisitiontime", v.acquisitiontime)))))))); return(json); }
public object GetBySensorAndDate(string sensors, DateTime startdate, DateTime enddate, int interval, string datename) { var list = new DAL.Data().GetMonitorData(sensors, startdate, enddate, interval, datename).OrderBy(d => d.SensorId); return (new JArray(list.GroupBy(l => new { l.SensorId, l.Location, l.Columns, l.Unit }).Select(d => new JObject( new JProperty("sensorid", d.Key.SensorId), new JProperty("location", d.Key.Location), new JProperty("columns", d.Key.Columns), new JProperty("unit", d.Key.Unit), new JProperty( "data", new JArray(d.Select(v => new JObject( new JProperty("value", v.Values), new JProperty("acquisitiontime", v.AcquisitionTime))))))))); }
public object GetLastBySensor(string sensors) { string[] sens = sensors.Split(','); int[] sensorArray = sens.Select(s => Convert.ToInt32(s)).ToArray(); var list = new DAL.Data().GetLastMonitorData(sensorArray).OrderBy(d => d.SensorId); return (new JArray(list.GroupBy(l => new { l.SensorId, l.Location, l.Columns, l.Unit }).Select(d => new JObject( new JProperty("sensorid", d.Key.SensorId), new JProperty("location", d.Key.Location), new JProperty("columns", d.Key.Columns), new JProperty("unit", d.Key.Unit), new JProperty( "data", new JArray(d.Select(v => new JObject( new JProperty("value", v.Values), new JProperty("acquisitiontime", v.AcquisitionTime))))))))); }