public override JSONObject GetResponse(System.Collections.Generic.Dictionary <string, string[]> requestAttributes) { bool _parseSuccess = true; DateTimeStamp _startDate = DateTimeStamp.MinValue; DateTimeStamp _endDate = DateTimeStamp.MaxValue; List <string> _tempSensorNames = new List <string> (); List <DeviceType> _tempSensorTypes = new List <DeviceType> (); StringBuilder sb = new StringBuilder(); if (requestAttributes.ContainsKey("start")) { if (!DateTimeStamp.TryParse(requestAttributes["start"].FirstOrDefault(), out _startDate)) { _parseSuccess = false; } if (sb.Length > 0) { sb.Append(" AND "); } sb.Append(string.Format("TimeStamp >= '{0}'", _startDate.ToString())); //'2015-03-09 09:38:00' } if (requestAttributes.ContainsKey("end")) { if (!DateTimeStamp.TryParse(requestAttributes["end"].FirstOrDefault(), out _endDate)) { _parseSuccess = false; } if (sb.Length > 0) { sb.Append(" AND "); } sb.Append(string.Format("TimeStamp <= '{0}'", _endDate.ToString())); } if (requestAttributes.ContainsKey("name")) { bool firstName = true; var nameList = requestAttributes ["name"]; //.FirstOrDefault().Split ("|".ToCharArray ()); if (nameList.Count() > 0) { if (sb.Length > 0) { sb.Append(" AND "); } sb.Append("DeviceMapID in (select ID from DeviceMap where "); foreach (string name in nameList) { if (firstName) { firstName = false; } else { sb.Append(" OR "); } sb.Append(string.Format("DeviceKey = '{0}'", name)); } sb.Append(")"); } } if (requestAttributes.ContainsKey("type")) { bool firstType = true; var typeList = requestAttributes["type"]; if (typeList.Count() > 0) { if (sb.Length > 0) { sb.Append(" AND "); } sb.Append("DeviceMapID in (select ID from DeviceMap where DeviceType in ("); foreach (string devType in typeList) //typeList) { { DeviceType t = DeviceType.Temperature; try { if (!Enum.TryParse <DeviceType> (devType, out t)) { t = (DeviceType)int.Parse(devType); } if (firstType) { firstType = false; } else { sb.Append(", "); } sb.Append(((int)t).ToString()); } catch { } } sb.Append("))"); } } var conn = ORM.CreateConnection(); JSONObject resp = null; try { conn.Open(); var logs = ORM.Select <DeviceLog> ("DeviceLog", sb.ToString(), ref conn); var maps = ORM.Select <DeviceMap> ("DeviceMap", string.Format("ID in (select distinct DeviceMapID from DeviceLog where {0})", sb.ToString())); if (requestAttributes.ContainsKey("csv") && requestAttributes["csv"][0].Trim().ToUpper() == "TRUE") { resp = new CSVDeviceResponse(logs, maps); } else { resp = new ChartJSGraphDevResponse(logs, maps); } } catch (Exception ex) { LogWriter.WriteLog(string.Format("An error was encountered wile attempting to get temperature logs for the filter '{0}'", sb.ToString()), ex); } conn.Close(); if (!_parseSuccess) { return(null); } else { return(resp); } }
public override JSONObject GetResponse(System.Collections.Generic.Dictionary <string, string[]> requestAttributes) { bool _parseSuccess = false; StringBuilder sb = new StringBuilder(); if (requestAttributes.ContainsKey("key")) { bool firstKey = true; var nameList = requestAttributes ["key"]; //.FirstOrDefault().Split ("|".ToCharArray ()); if (nameList.Count() > 0) { if (sb.Length > 0) { sb.Append(" AND "); } sb.Append("("); foreach (string name in nameList) { if (firstKey) { firstKey = false; } else { sb.Append(" OR "); } sb.Append(string.Format("Key like '{0}'", name)); } sb.Append(")"); } } if (requestAttributes.ContainsKey("id")) { var nameList = requestAttributes ["id"]; //.FirstOrDefault().Split ("|".ToCharArray ()); if (nameList.Count() > 0) { if (sb.Length > 0) { sb.Append(" AND "); } sb.Append("(Identifier = NULL"); foreach (string name in nameList) { sb.Append(" OR "); sb.Append(string.Format("Identifier like '{0}'", name)); } sb.Append(")"); } } var conn = ORM.CreateConnection(); JSONObject resp = null; try { conn.Open(); resp = new SettingsReturn(ORM.Select <Configuration> ("Configuration", sb.ToString(), ref conn)); _parseSuccess = true; } catch (Exception ex) { LogWriter.WriteLog(string.Format("An error was encountered wile attempting to get temperature logs for the filter '{0}'", sb.ToString()), ex); } conn.Close(); if (!_parseSuccess) { return(null); } else { return(resp); } }
public override JSONObject GetResponse(Dictionary <string, string[]> requestAttributes) { bool _parseSuccess = true; List <string> _tempSensorNames = new List <string> (); StringBuilder sb = new StringBuilder(); sb.Append(string.Format("DeviceType = {0}", (int)DeviceType.Temperature)); if (requestAttributes.ContainsKey("names")) { bool firstName = true; if (sb.Length > 0) { sb.Append(" AND "); } sb.Append("("); foreach (string name in requestAttributes["names"].ToString().Split("|".ToCharArray())) { if (firstName) { firstName = false; } else { sb.Append(" OR "); } sb.Append(string.Format("Name like '{0}'", name)); } sb.Append(")"); } var conn = ORM.CreateConnection(); DeviceLogJSONResponse resp = null; try { conn.Open(); var maps = ORM.Select <DeviceMap> ("DeviceMap", sb.ToString(), ref conn); var logs = new List <DeviceLog>(); foreach (var map in maps) { MonitoringManager.ReadDevice(map.DeviceKey); } resp = new DeviceLogJSONResponse(logs, maps); } catch (Exception ex) { LogWriter.WriteLog(string.Format("An error was encountered while attempting to get temperature logs for the filter '{0}'", sb.ToString()), ex); } conn.Close(); if (!_parseSuccess) { return(null); } else { return(resp); } }
public override JSONObject GetResponse(System.Collections.Generic.Dictionary <string, string[]> requestAttributes) { bool _parseSuccess = true; DateTime _startDate = DateTime.MinValue; DateTime _endDate = DateTime.MaxValue; List <string> _tempSensorNames = new List <string> (); StringBuilder sb = new StringBuilder(); if (requestAttributes.ContainsKey("start")) { if (!DateTime.TryParse(requestAttributes ["start"].ToString(), out _startDate)) { _parseSuccess = false; } if (sb.Length > 0) { sb.Append(" AND "); } sb.Append(string.Format("TimeStamp >= '{0}'", _startDate.ToString())); } if (requestAttributes.ContainsKey("end")) { if (!DateTime.TryParse(requestAttributes ["end"].ToString(), out _endDate)) { _parseSuccess = false; } if (sb.Length > 0) { sb.Append(" AND "); } sb.Append(string.Format("TimeStamp <= '{0}'", _endDate.ToString())); } sb.Append(string.Format("DeviceMapID in (select ID from DeviceMap where DeviceType = {0})", (int)DeviceType.Temperature)); if (requestAttributes.ContainsKey("names")) { bool firstName = true; if (sb.Length > 0) { sb.Append(" AND "); } sb.Append("DeviceMapID in (select ID from DeviceMap where "); foreach (string name in requestAttributes["names"].ToString().Split("|".ToCharArray())) { if (firstName) { firstName = false; } else { sb.Append(" OR "); } sb.Append(string.Format("Name like '{0}'", name)); } sb.Append(")"); } var conn = ORM.CreateConnection(); TemperatureJSONResponse resp = null; try { conn.Open(); var logs = ORM.Select <DeviceLog> ("DeviceLog", sb.ToString(), ref conn); var maps = ORM.Select <DeviceMap> ("DeviceMap", string.Format("ID in (select distinct DeviceMapID from DeviceLog where {0})", sb.ToString())); resp = new TemperatureJSONResponse(logs, maps); } catch (Exception ex) { LogWriter.WriteLog(string.Format("An error was encountered wile attempting to get temperature logs for the filter '{0}'", sb.ToString()), ex); } conn.Close(); if (!_parseSuccess) { return(null); } else { return(resp); } }