public JsonResult GetDeviceTypes(int start, int limit) { var data = new AjaxDataModel <List <ComboItem <int, string> > > { success = true, message = "No data", total = 0, data = new List <ComboItem <int, string> >() }; try { var models = _deviceService.GetTypes(); if (models.Count > 0) { data.message = "200 Ok"; data.total = models.Count; data.data.AddRange(models.Select(d => new ComboItem <int, string> { id = d.Key, text = d.Value })); } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public JsonResult GetProject(string id, int action) { var data = new AjaxDataModel <ProjectModel> { success = true, message = "200 Ok", total = 0, data = new ProjectModel { index = 1, id = Guid.NewGuid().ToString(), name = "", start = CommonHelper.DateConverter(DateTime.Today), end = CommonHelper.DateConverter(DateTime.Today.AddDays(7)), responsible = "", contact = "", company = "", creator = _workContext.Employee() != null?_workContext.Employee().Name : _workContext.User().Uid, createdtime = CommonHelper.DateConverter(DateTime.Now), comment = "", enabled = true } }; try { if (action == (int)EnmAction.Add) { return(Json(data, JsonRequestBehavior.AllowGet)); } if (string.IsNullOrWhiteSpace(id)) { throw new ArgumentException("id"); } if (action != (int)EnmAction.Edit) { throw new ArgumentException("action"); } var project = _projectService.GetProject(id); if (project == null) { throw new iPemException("未找到数据对象"); } data.data.id = project.Id; data.data.name = project.Name; data.data.start = CommonHelper.DateConverter(project.StartTime); data.data.end = CommonHelper.DateConverter(project.EndTime); data.data.responsible = project.Responsible; data.data.contact = project.ContactPhone; data.data.company = project.Company; data.data.comment = project.Comment; data.data.enabled = project.Enabled; return(Json(data, JsonRequestBehavior.AllowGet)); } catch (Exception exc) { _webLogger.Error(EnmEventType.Other, exc.Message, _workContext.User().Id, exc); data.success = false; data.message = exc.Message; return(Json(data, JsonRequestBehavior.AllowGet)); } }
public JsonResult GetAlarmLevels(int start, int limit) { var data = new AjaxDataModel <List <ComboItem <int, string> > > { success = true, message = "No data", total = 0, data = new List <ComboItem <int, string> >() }; try { foreach (EnmAlarmLevel level in Enum.GetValues(typeof(EnmAlarmLevel))) { if (level == EnmAlarmLevel.NoAlarm) { continue; } data.data.Add(new ComboItem <int, string>() { id = (int)level, text = Common.GetAlarmDisplay(level) }); } if (data.data.Count > 0) { data.total = data.data.Count; data.message = "200 Ok"; } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public JsonResult GetFiles(int start, int limit, string key, string name, bool cache) { var data = new AjaxDataModel <List <FileModel> > { success = true, message = "无数据", total = 0, data = new List <FileModel>() }; try { var files = this.GetFtpFiles(key, name, cache); if (files != null && files.Count > 0) { data.message = "200 OK"; data.total = files.Count; var end = start + limit; if (end > files.Count) { end = files.Count; } for (int i = start; i < end; i++) { data.data.Add(files[i]); } } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public JsonResult GetComboProjects(int start, int limit) { var data = new AjaxDataModel <List <ComboItem <string, string> > > { success = true, message = "无数据", total = 0, data = new List <ComboItem <string, string> >() }; try { var models = _projectService.GetValidProjects().OrderByDescending(p => p.CreatedTime).Select(p => new ComboItem <string, string> { id = p.Id.ToString(), text = p.Name }); var result = new PagedList <ComboItem <string, string> >(models, start / limit, limit, models.Count()); if (result.Count > 0) { data.message = "200 Ok"; data.total = result.TotalCount; for (var i = 0; i < result.Count; i++) { data.data.Add(result[i]); } } } catch (Exception exc) { _webLogger.Error(EnmEventType.Other, exc.Message, _workContext.User().Id, exc); data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public JsonResult RequestPoints(string node, int[] types) { var data = new AjaxDataModel <List <PointModel> > { success = true, message = "无数据", total = 0, data = new List <PointModel>() }; try { if (types != null && types.Length > 0) { var keys = Common.SplitKeys(node); if (keys.Length == 2) { var type = int.Parse(keys[0]); var id = int.Parse(keys[1]); var gid = Common.GroupId; var nodeType = Enum.IsDefined(typeof(EnmScType), type) ? (EnmScType)type : EnmScType.None; if (nodeType == EnmScType.Device) { var points = _pointService.GetPoints(id, types.Contains((int)EnmScType.Aic), types.Contains((int)EnmScType.Aoc), types.Contains((int)EnmScType.Dic), types.Contains((int)EnmScType.Doc)); var values = _valueService.GetValues(id, types.Contains((int)EnmScType.Aic), types.Contains((int)EnmScType.Aoc), types.Contains((int)EnmScType.Dic), types.Contains((int)EnmScType.Doc)); var pWv = from point in points join value in values on new { Id = point.Id, Type = point.Type } equals new { Id = value.NodeId, Type = value.NodeType } into temp from pv in temp.DefaultIfEmpty() select new { Point = point, Value = pv }; foreach (var pv in pWv) { data.data.Add(new PointModel { id = pv.Point.Id, name = pv.Point.Name, type = (int)pv.Point.Type, typeDisplay = Common.GetScTypeDisplay(pv.Point.Type), value = pv.Value != null ? pv.Value.Value : 0f, valueDisplay = pv.Value != null ? Common.GetValueDisplay(pv.Point, pv.Value.Value) : Common.GetValueDisplay(pv.Point, 0), status = pv.Value != null ? (int)pv.Value.State : (int)EnmPointStatus.Invalid, statusDisplay = pv.Value != null ? Common.GetPointStatusDisplay(pv.Value.State) : Common.GetPointStatusDisplay(EnmPointStatus.Invalid), timestamp = pv.Value != null ? CommonHelper.DateTimeConverter(pv.Value.UpdateTime) : CommonHelper.DateTimeConverter(DateTime.Now), shortTime = pv.Value != null ? CommonHelper.ShortTimeConverter(pv.Value.UpdateTime) : CommonHelper.ShortTimeConverter(DateTime.Now) }); } data.total = data.data.Count; data.message = "200 Ok"; } } } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public JsonResult GetWpfCtrlObj(string node) { var data = new AjaxDataModel <GviewCtrlModel> { success = false, message = "No data", total = 0, data = null }; try { if (string.IsNullOrWhiteSpace(node)) { throw new ArgumentNullException("node"); } var ids = Common.SplitKeys(node); if (ids.Length != 2) { throw new ArgumentException("node"); } var device = _workContext.Devices().Find(r => r.Current.Id.Equals(ids[0])); if (device == null) { throw new iPemException("未找到设备信息"); } var point = _workContext.Points().Find(p => p.Id.Equals(ids[1])); if (point == null) { throw new iPemException("未找到信号信息"); } if (point.Type != EnmPoint.AO && point.Type != EnmPoint.DO) { throw new iPemException("信号类型错误"); } data.success = true; data.message = "200 Ok"; data.total = 1; data.data = new GviewCtrlModel(); data.data.deviceId = device.Current.Id; data.data.deviceName = device.Current.Name; data.data.pointId = point.Id; data.data.pointName = point.Name; data.data.pointType = (int)point.Type; } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public JsonResult RequestHisAlarms(string node, int[] stationtypes, int[] devicetypes, int[] alarmlevels, DateTime startdate, DateTime enddate, double interval, int start, int limit) { var data = new AjaxDataModel <List <HisAlarmModel> > { success = true, message = "无数据", total = 0, data = new List <HisAlarmModel>() }; try { var models = this.GetHisAlarms(node, stationtypes, devicetypes, alarmlevels, startdate, enddate, interval); if (models.Count > 0) { data.message = "200 Ok"; data.total = models.Count; var end = start + limit; if (end > models.Count) { end = models.Count; } for (int i = start; i < end; i++) { data.data.Add(new HisAlarmModel { index = i + 1, id = models[i].Id, level = (int)models[i].AlarmLevel, levelDisplay = Common.GetAlarmDisplay(models[i].AlarmLevel), area = models[i].AreaName, station = models[i].StationName, device = models[i].DeviceName, point = models[i].PointName, comment = models[i].AlarmDesc, alarmValue = models[i].AlarmValue, endValue = models[i].EndValue, startTime = CommonHelper.DateTimeConverter(models[i].StartTime), endTime = CommonHelper.DateTimeConverter(models[i].EndTime), confirmer = models[i].ConfirmName, confirmedTime = CommonHelper.DateTimeConverter(models[i].ConfirmTime), interval = CommonHelper.IntervalConverter(models[i].StartTime, models[i].EndTime), endType = Common.GetAlarmEndDisplay(models[i].EndType), background = Common.GetAlarmColor(models[i].AlarmLevel) }); } } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public string GetDevices(string token, int node, int start = 0, int limit = int.MaxValue) { var data = new AjaxDataModel <List <DeviceModel> > { success = false, message = "无数据", total = 0, data = new List <DeviceModel>() }; try { if (string.IsNullOrWhiteSpace(token)) { throw new Exception("无效的令牌"); } if (!_cacheManager.IsSet(token)) { throw new Exception("无效的令牌"); } var user = _cacheManager.Get <User>(token); var devices = node == -1 ? _deviceService.GetAllDevices(user.GroupId) : _deviceService.GetDevices(node); data.success = true; data.message = "200 Ok"; data.total = devices.Count; var end = start + limit; if (end > devices.Count) { end = devices.Count; } for (int i = start; i < end; i++) { data.data.Add(new DeviceModel { id = devices[i].Id, name = devices[i].Name, type = devices[i].DeviceTypeName }); } } catch (Exception exc) { data.message = exc.Message; } return(JsonConvert.SerializeObject(data, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Include })); }
public JsonResult GetProjects(int start, int limit, string name, DateTime startDate, DateTime endDate) { var data = new AjaxDataModel <List <ProjectModel> > { success = true, message = "无数据", total = 0, data = new List <ProjectModel>() }; try { startDate = startDate.Date; endDate = endDate.Date.AddSeconds(86399); var names = Common.SplitCondition(name); var projects = names.Length > 0 ? _projectService.GetPagedProjectsInNames(names, startDate, endDate, start / limit, limit) : _projectService.GetPagedProjectsInSpan(startDate, endDate, start / limit, limit); if (projects.TotalCount > 0) { data.message = "200 Ok"; data.total = projects.TotalCount; for (var i = 0; i < projects.Count; i++) { data.data.Add(new ProjectModel { index = start + i + 1, id = projects[i].Id, name = projects[i].Name, start = CommonHelper.DateConverter(projects[i].StartTime), end = CommonHelper.DateConverter(projects[i].EndTime), responsible = projects[i].Responsible, contact = projects[i].ContactPhone, company = projects[i].Company, creator = projects[i].Creator, createdtime = CommonHelper.DateTimeConverter(projects[i].CreatedTime), comment = projects[i].Comment, enabled = projects[i].Enabled }); } } } catch (Exception exc) { _webLogger.Error(EnmEventType.Other, exc.Message, _workContext.User().Id, exc); data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public string GetVideoPoints(string token) { var data = new AjaxDataModel <List <GVideoModel> > { success = true, message = "无数据", total = 0, data = new List <GVideoModel>() }; try { if (string.IsNullOrWhiteSpace(token) || !_cacheManager.IsSet(token)) { throw new Exception("无效令牌"); } var models = _gvideoService.GetEntities(); if (models.Count > 0) { data.message = "200 OK"; data.total = models.Count; foreach (var model in models) { data.data.Add(new GVideoModel { id = model.Id, enabled = model.Enabled, name = model.Name, type = model.Type, ip = model.Ip, port = model.Port, uid = model.Uid, pwd = model.Pwd, auxSet = model.AuxSet, imgPort = model.ImgPort, portId = model.PortId }); } } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(JsonConvert.SerializeObject(data, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Include })); }
public JsonResult SearchOrganization(string text) { var data = new AjaxDataModel <List <string[]> > { success = true, message = "No data", total = 0, data = new List <string[]>() }; try { if (!string.IsNullOrWhiteSpace(text)) { text = text.Trim().ToLower(); var gid = Common.GroupId; var areas = _areaService.GetAreas(gid); var areaMatchs = areas.FindAll(a => a.Name.ToLower().Contains(text)); foreach (var match in areaMatchs) { var paths = GetAreaPath(areas, match); if (paths.Count > 0) { data.data.Add(paths.ToArray()); } } var stations = _stationService.GetStations(gid); var staMatchs = stations.FindAll(s => s.Name.ToLower().Contains(text)); foreach (var match in staMatchs) { var paths = GetAreaPath(areas, match.AreaId); paths.Add(Common.JoinKeys((int)EnmScType.Station, match.Id)); data.data.Add(paths.ToArray()); } data.message = "200 Ok"; data.total = data.data.Count; } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public JsonResult GetUpgradeFiles(int start, int limit) { var data = new AjaxDataModel <List <ComboItem <string, string> > > { success = true, message = "No data", total = 0, data = new List <ComboItem <string, string> >() }; try { var ftp = _ftpService.GetFtps(EnmFtp.Master).FirstOrDefault(); if (ftp != null) { ftp.Directory = "Update"; var files = this.GetFtpFiles(ftp); foreach (var file in files.OrderByDescending(f => f.date)) { data.data.Add(new ComboItem <string, string>() { id = file.name, text = file.name, comment = file.date }); } } if (data.data.Count > 0) { data.total = data.data.Count; data.message = "200 Ok"; } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public string GetStations(string token, int node, int start = 0, int limit = int.MaxValue) { var data = new AjaxDataModel <List <StationModel> > { success = false, message = "无数据", total = 0, data = new List <StationModel>() }; try { if (string.IsNullOrWhiteSpace(token)) { throw new Exception("无效的令牌"); } if (!_cacheManager.IsSet(token)) { throw new Exception("无效的令牌"); } var user = _cacheManager.Get <User>(token); var stations = node == -1 ? _stationService.GetStations(user.GroupId) : _stationService.GetStations(user.GroupId, node); var areas = _areaService.GetAreas(user.GroupId); data.success = true; data.message = "200 Ok"; data.total = stations.Count; var end = start + limit; if (end > stations.Count) { end = stations.Count; } for (int i = start; i < end; i++) { var current = stations[i]; var county = string.Empty; var city = string.Empty; var province = string.Empty; var area = areas.Find(a => a.Id == current.AreaId); if (area != null) { county = area.Name; var parea = areas.Find(a => a.Id == area.LastId); if (parea != null) { city = parea.Name; var pparea = areas.Find(a => a.Id == parea.LastId); if (pparea != null) { province = pparea.Name; } } } data.data.Add(new StationModel { id = current.Id, name = current.Name, type = current.StationTypeName, county = county, city = city, province = province }); } } catch (Exception exc) { data.message = exc.Message; } return(JsonConvert.SerializeObject(data, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Include })); }
public string GetOrganization(string token, string node) { var data = new AjaxDataModel <List <TreeModel> > { success = false, message = "无数据", total = 0, data = new List <TreeModel>() }; try { if (string.IsNullOrWhiteSpace(token)) { throw new Exception("无效的令牌"); } if (!_cacheManager.IsSet(token)) { throw new Exception("无效的令牌"); } if (string.IsNullOrWhiteSpace(node)) { throw new Exception("无效的节点"); } var user = _cacheManager.Get <User>(token); if (node == "root") { #region root var roots = _areaService.GetAreas(user.GroupId).FindAll(a => a.LastId == 0); data.success = true; data.message = "200 Ok"; data.total = roots.Count; for (var i = 0; i < roots.Count; i++) { var root = new TreeModel { id = roots[i].Id.ToString(), text = roots[i].Name, selected = false, icon = "Area", expanded = false, leaf = false }; data.data.Add(root); } #endregion } else { data.message = "无效的节点"; var keys = Common.SplitKeys(node); if (keys.Length == 2) { var type = int.Parse(keys[0]); var id = int.Parse(keys[1]); var gid = user.GroupId; var nodeType = Enum.IsDefined(typeof(EnmScType), type) ? (EnmScType)type : EnmScType.None; if (nodeType == EnmScType.Area) { #region area organization var areas = _areaService.GetAreas(gid); var children = areas.FindAll(a => a.LastId == id); if (children.Count > 0) { data.success = true; data.message = "200 Ok"; data.total = children.Count; for (var i = 0; i < children.Count; i++) { var root = new TreeModel { id = children[i].Id.ToString(), text = children[i].Name, selected = false, icon = "Area", expanded = false, leaf = false }; data.data.Add(root); } } else { var stations = _stationService.GetStations(gid, id); if (stations.Count > 0) { data.success = true; data.message = "200 Ok"; data.total = stations.Count; for (var i = 0; i < stations.Count; i++) { var root = new TreeModel { id = stations[i].Id.ToString(), text = stations[i].Name, selected = false, icon = "Station", expanded = false, leaf = false }; data.data.Add(root); } } } #endregion } else if (nodeType == EnmScType.Station) { #region station organization var devices = _deviceService.GetDevices(id); if (devices.Count > 0) { data.success = true; data.message = "200 Ok"; data.total = devices.Count; for (var i = 0; i < devices.Count; i++) { var root = new TreeModel { id = devices[i].Id.ToString(), text = devices[i].Name, selected = false, icon = "Device", expanded = false, leaf = true }; data.data.Add(root); } } #endregion } else if (nodeType == EnmScType.Device) { #region device organization data.success = true; data.message = "No Data"; data.total = 0; #endregion } } } } catch (Exception exc) { data.message = exc.Message; } return(JsonConvert.SerializeObject(data, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Include })); }
public JsonResult GetMarkers(double minlng, double minlat, double maxlng, double maxlat) { var data = new AjaxDataModel <List <MarkerModel> > { success = true, message = "No data", total = 0, data = new List <MarkerModel>() }; try { var currentGroupId = Common.GroupId; var stations = _stationService.GetStations(currentGroupId).FindAll(s => { return(s.Longitude >= minlng && s.Longitude <= maxlng && s.Latitude >= minlat && s.Latitude <= maxlat); }); if (stations.Count > 0) { if (stations.Count > 100) { stations = stations.Take(100).ToList(); } data.message = "200 Ok"; data.total = stations.Count; var alarms = _alarmService.GetAllActAlarms(); var devices = _deviceService.GetAllDevices(currentGroupId); var almWDev = from alarm in alarms join device in devices on alarm.DeviceId equals device.Id select new { Alarm = alarm, Device = device }; var almsInSta = from awd in almWDev group awd by awd.Device.PId into g select new { Id = g.Key, Alarms = g.Select(a => a.Alarm) }; foreach (var station in stations) { var model = new MarkerModel() { id = station.Id.ToString(), name = station.Name, type = station.StationTypeName, lng = station.Longitude, lat = station.Latitude }; var eachSta = almsInSta.FirstOrDefault(s => s.Id == station.Id); if (eachSta != null) { model.alm1 = eachSta.Alarms.Count(a => a.AlarmLevel == EnmAlarmLevel.Level1); model.alm2 = eachSta.Alarms.Count(a => a.AlarmLevel == EnmAlarmLevel.Level2); model.alm3 = eachSta.Alarms.Count(a => a.AlarmLevel == EnmAlarmLevel.Level3); model.alm4 = eachSta.Alarms.Count(a => a.AlarmLevel == EnmAlarmLevel.Level4); if (model.alm1 > 0) { model.level = (int)EnmAlarmLevel.Level1; } else if (model.alm2 > 0) { model.level = (int)EnmAlarmLevel.Level2; } else if (model.alm3 > 0) { model.level = (int)EnmAlarmLevel.Level3; } else if (model.alm4 > 0) { model.level = (int)EnmAlarmLevel.Level4; } else { model.level = (int)EnmAlarmLevel.NoAlarm; } } else { model.level = (int)EnmAlarmLevel.NoAlarm; model.alm1 = 0; model.alm2 = 0; model.alm3 = 0; model.alm4 = 0; } data.data.Add(model); } } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public JsonResult GetMarkers(double minlng, double minlat, double maxlng, double maxlat) { var data = new AjaxDataModel <List <MarkerModel> > { success = true, message = "No data", total = 0, data = new List <MarkerModel>() }; try { var stations = _workContext.Stations().FindAll(s => { if (string.IsNullOrWhiteSpace(s.Current.Longitude)) { return(false); } if (string.IsNullOrWhiteSpace(s.Current.Latitude)) { return(false); } double lng, lat; if (!double.TryParse(s.Current.Longitude, out lng)) { return(false); } if (!double.TryParse(s.Current.Latitude, out lat)) { return(false); } return(lng >= minlng && lng <= maxlng && lat >= minlat && lat <= maxlat); }); if (stations.Count > 0) { if (stations.Count > 100) { stations = stations.Take(100).ToList(); } data.message = "200 Ok"; data.total = stations.Count; var almsInSta = from alarm in _workContext.ActAlarms() group alarm by alarm.Current.StationId into g select new { Id = g.Key, Alarms = g.Select(a => a.Current) }; foreach (var station in stations) { var model = new MarkerModel() { id = station.Current.Id, name = station.Current.Name, type = station.Current.Type.Name, lng = double.Parse(station.Current.Longitude), lat = double.Parse(station.Current.Latitude) }; var eachSta = almsInSta.FirstOrDefault(s => s.Id == station.Current.Id); if (eachSta != null) { model.alm1 = eachSta.Alarms.Count(a => a.AlarmLevel == EnmAlarm.Level1); model.alm2 = eachSta.Alarms.Count(a => a.AlarmLevel == EnmAlarm.Level2); model.alm3 = eachSta.Alarms.Count(a => a.AlarmLevel == EnmAlarm.Level3); model.alm4 = eachSta.Alarms.Count(a => a.AlarmLevel == EnmAlarm.Level4); if (model.alm1 > 0) { model.level = (int)EnmAlarm.Level1; } else if (model.alm2 > 0) { model.level = (int)EnmAlarm.Level2; } else if (model.alm3 > 0) { model.level = (int)EnmAlarm.Level3; } else if (model.alm4 > 0) { model.level = (int)EnmAlarm.Level4; } else { model.level = (int)EnmAlarm.Level0; } } else { model.level = (int)EnmAlarm.Level0; model.alm1 = 0; model.alm2 = 0; model.alm3 = 0; model.alm4 = 0; } data.data.Add(model); } } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public JsonResult GetOrganization(string node) { var data = new AjaxDataModel <List <TreeModel> > { success = true, message = "No data", total = 0, data = new List <TreeModel>() }; try { if (!string.IsNullOrWhiteSpace(node)) { if (node == "root") { #region root var roots = _areaService.GetAreas(Common.GroupId).FindAll(a => a.LastId == 0); for (var i = 0; i < roots.Count; i++) { var root = new TreeModel { id = Common.JoinKeys((int)EnmScType.Area, roots[i].Id), text = roots[i].Name, selected = false, icon = Icons.Diqiu, expanded = false, leaf = false }; data.data.Add(root); } #endregion } else { var keys = Common.SplitKeys(node); if (keys.Length == 2) { var type = int.Parse(keys[0]); var id = int.Parse(keys[1]); var gid = Common.GroupId; var nodeType = Enum.IsDefined(typeof(EnmScType), type) ? (EnmScType)type : EnmScType.None; if (nodeType == EnmScType.Area) { #region area organization var areas = _areaService.GetAreas(gid); var children = areas.FindAll(a => a.LastId == id); if (children.Count > 0) { data.success = true; data.message = "200 Ok"; data.total = children.Count; for (var i = 0; i < children.Count; i++) { var root = new TreeModel { id = Common.JoinKeys((int)EnmScType.Area, children[i].Id), text = children[i].Name, selected = false, icon = Icons.Diqiu, expanded = false, leaf = false }; data.data.Add(root); } } else { var stations = _stationService.GetStations(gid, id); if (stations.Count > 0) { data.success = true; data.message = "200 Ok"; data.total = stations.Count; for (var i = 0; i < stations.Count; i++) { var root = new TreeModel { id = Common.JoinKeys((int)EnmScType.Station, stations[i].Id), text = stations[i].Name, selected = false, icon = Icons.Juzhan, expanded = false, leaf = false }; data.data.Add(root); } } } #endregion } else if (nodeType == EnmScType.Station) { #region station organization var devices = _deviceService.GetDevices(id); if (devices.Count > 0) { data.success = true; data.message = "200 Ok"; data.total = devices.Count; for (var i = 0; i < devices.Count; i++) { var root = new TreeModel { id = Common.JoinKeys((int)EnmScType.Device, devices[i].Id), text = devices[i].Name, selected = false, icon = Icons.Shebei, expanded = false, leaf = true }; data.data.Add(root); } } #endregion } } } } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public JsonResult GetReservations(int start, int limit, DateTime startDate, DateTime endDate, int type, string keyWord) { var data = new AjaxDataModel <List <ReservationModel> > { success = true, message = "无数据", total = 0, data = new List <ReservationModel>() }; try { startDate = startDate.Date; endDate = endDate.Date.AddSeconds(86399); var reservations = _reservationService.GetReservationsInSpan(startDate, endDate); var projects = _projectService.GetProjects(); var result = (from res in reservations join pro in projects on res.ProjectId equals pro.Id select new { Reservation = res, Project = pro }).ToList(); if (!string.IsNullOrWhiteSpace(keyWord)) { var keyWords = Common.SplitCondition(keyWord.Trim()); if (type == (int)EnmSSH.Area) { var nodes = _nodesInReservationService.GetNodesInReservationsInType(EnmSSH.Area); var areas = _workContext.Areas().FindAll(a => CommonHelper.ConditionContain(a.Current.Name, keyWords)); var matchs = from node in nodes join area in areas on node.NodeId equals area.Current.Id select node; var ids = (from node in matchs group node by node.ReservationId into g select g.Key).ToArray(); result = result.FindAll(a => ids.Contains(a.Reservation.Id)); } else if (type == (int)EnmSSH.Device) { var nodes = _nodesInReservationService.GetNodesInReservationsInType(EnmSSH.Device); var devices = _workContext.Devices().FindAll(a => CommonHelper.ConditionContain(a.Current.Name, keyWords)); var matchs = from node in nodes join device in devices on node.NodeId equals device.Current.Id select node; var ids = (from node in matchs group node by node.ReservationId into g select g.Key).ToArray(); result = result.FindAll(a => ids.Contains(a.Reservation.Id)); } else if (type == (int)EnmSSH.Room) { var nodes = _nodesInReservationService.GetNodesInReservationsInType(EnmSSH.Room); var rooms = _workContext.Rooms().FindAll(a => CommonHelper.ConditionContain(a.Current.Name, keyWords)); var matchs = from node in nodes join room in rooms on node.NodeId equals room.Current.Id select node; var ids = (from node in matchs group node by node.ReservationId into g select g.Key).ToArray(); result = result.FindAll(a => ids.Contains(a.Reservation.Id)); } else if (type == (int)EnmSSH.Station) { var nodes = _nodesInReservationService.GetNodesInReservationsInType(EnmSSH.Station); var stations = _workContext.Stations().FindAll(a => CommonHelper.ConditionContain(a.Current.Name, keyWords)); var matchs = from node in nodes join station in stations on node.NodeId equals station.Current.Id select node; var ids = (from node in matchs group node by node.ReservationId into g select g.Key).ToArray(); result = result.FindAll(a => ids.Contains(a.Reservation.Id)); } else { result = result.FindAll(a => CommonHelper.ConditionContain(a.Project.Name, keyWords)); } } if (result.Count > 0) { data.message = "200 Ok"; data.total = result.Count; var end = start + limit; if (end > result.Count) { end = result.Count; } var users = _userService.GetPagedUsers().ToDictionary(k => k.Id, v => v.Uid); for (int i = start; i < end; i++) { data.data.Add(new ReservationModel { index = i + 1, id = result[i].Reservation.Id, name = result[i].Reservation.Name, expStartDate = CommonHelper.DateTimeConverter(result[i].Reservation.ExpStartTime), startDate = CommonHelper.DateTimeConverter(result[i].Reservation.StartTime), endDate = CommonHelper.DateTimeConverter(result[i].Reservation.EndTime), projectId = result[i].Project.Id, projectName = result[i].Project.Name, creator = result[i].Reservation.Creator, user = users[result[i].Reservation.UserId], createdTime = CommonHelper.DateTimeConverter(result[i].Reservation.CreatedTime), comment = result[i].Reservation.Comment, enabled = result[i].Reservation.Enabled, statusId = ((int)result[i].Reservation.Status), status = Common.GetResStatusDisplay(result[i].Reservation.Status) }); } } } catch (Exception exc) { _webLogger.Error(EnmEventType.Other, exc.Message, _workContext.User().Id, exc); data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }
public string GetHisAlarms(string token, int node, int type, int[] level, DateTime startDate, DateTime endDate, int start = 0, int limit = int.MaxValue) { var data = new AjaxDataModel <List <HisAlarmModel> > { success = true, message = "无数据", total = 0, data = new List <HisAlarmModel>() }; try { if (string.IsNullOrWhiteSpace(token)) { throw new Exception("无效的令牌"); } if (!_cacheManager.IsSet(token)) { throw new Exception("无效的令牌"); } var user = _cacheManager.Get <User>(token); var models = RequestHisAlarms(user.GroupId, node, type, level, startDate, endDate); if (models.Count > 0) { data.message = "200 Ok"; data.total = models.Count; var end = start + limit; if (end > models.Count) { end = models.Count; } for (int i = start; i < end; i++) { data.data.Add(new HisAlarmModel { index = i + 1, id = models[i].Id, level = (int)models[i].AlarmLevel, levelDisplay = Common.GetAlarmDisplay(models[i].AlarmLevel), area = models[i].AreaName, station = models[i].StationName, device = models[i].DeviceName, point = models[i].PointName, comment = models[i].AlarmDesc, alarmValue = models[i].AlarmValue, endValue = models[i].EndValue, startTime = CommonHelper.DateTimeConverter(models[i].StartTime), endTime = CommonHelper.DateTimeConverter(models[i].EndTime), confirmer = models[i].ConfirmName, confirmedTime = CommonHelper.DateTimeConverter(models[i].ConfirmTime), interval = CommonHelper.IntervalConverter(models[i].StartTime, models[i].EndTime), endType = Common.GetAlarmEndDisplay(models[i].EndType), background = Common.GetAlarmColor(models[i].AlarmLevel) }); } } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(JsonConvert.SerializeObject(data, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Include })); }
public string GetPoints(string token, int node, int[] types = null) { var data = new AjaxDataModel <List <PointModel> > { success = true, message = "无数据", total = 0, data = new List <PointModel>() }; try { if (string.IsNullOrWhiteSpace(token)) { throw new Exception("无效的令牌"); } if (!_cacheManager.IsSet(token)) { throw new Exception("无效的令牌"); } var user = _cacheManager.Get <User>(token); if (types == null || types.Length == 0) { types = new int[] { (int)EnmScType.Aic, (int)EnmScType.Aoc, (int)EnmScType.Dic, (int)EnmScType.Doc } } ; var gid = user.GroupId; var points = _pointService.GetPoints(node, types.Contains((int)EnmScType.Aic), types.Contains((int)EnmScType.Aoc), types.Contains((int)EnmScType.Dic), types.Contains((int)EnmScType.Doc)); var values = _valueService.GetValues(node, types.Contains((int)EnmScType.Aic), types.Contains((int)EnmScType.Aoc), types.Contains((int)EnmScType.Dic), types.Contains((int)EnmScType.Doc)); var pWv = from point in points join value in values on new { Id = point.Id, Type = point.Type } equals new { Id = value.NodeId, Type = value.NodeType } into temp from pv in temp.DefaultIfEmpty() select new { Point = point, Value = pv }; foreach (var pv in pWv) { data.data.Add(new PointModel { id = pv.Point.Id, name = pv.Point.Name, type = (int)pv.Point.Type, typeDisplay = Common.GetScTypeDisplay(pv.Point.Type), value = pv.Value != null ? pv.Value.Value : 0d, valueDisplay = pv.Value != null ? Common.GetValueDisplay(pv.Point, pv.Value.Value) : Common.GetValueDisplay(pv.Point, 0), status = pv.Value != null ? (int)pv.Value.State : (int)EnmPointStatus.Invalid, statusDisplay = pv.Value != null ? Common.GetPointStatusDisplay(pv.Value.State) : Common.GetPointStatusDisplay(EnmPointStatus.Invalid), timestamp = pv.Value != null ? CommonHelper.DateTimeConverter(pv.Value.UpdateTime) : CommonHelper.DateTimeConverter(DateTime.Now), shortTime = pv.Value != null ? CommonHelper.ShortTimeConverter(pv.Value.UpdateTime) : CommonHelper.ShortTimeConverter(DateTime.Now) }); } data.total = data.data.Count; data.message = "200 Ok"; } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(JsonConvert.SerializeObject(data, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Include })); }
public JsonResult GetReservation(string id, int action) { var data = new AjaxDataModel <ReservationModel> { success = true, message = "200 OK", total = 0, data = new ReservationModel { index = 1, id = Guid.NewGuid().ToString(), name = "", expStartDate = CommonHelper.DateTimeConverter(DateTime.Now.AddSeconds(2100)), endDate = CommonHelper.DateTimeConverter(DateTime.Now.AddSeconds(88500)), projectId = "", projectName = "", creator = _workContext.Employee() != null?_workContext.Employee().Name : _workContext.User().Uid, //user = _workContext.User().Uid, createdTime = CommonHelper.DateTimeConverter(DateTime.Now), comment = "", enabled = true, nodes = new string[0] } }; try { if (action == (int)EnmAction.Add) { return(Json(data, JsonRequestBehavior.AllowGet)); } if (string.IsNullOrWhiteSpace(id)) { throw new ArgumentException("id"); } if (action != (int)EnmAction.Edit) { throw new ArgumentException("action"); } var reservation = _reservationService.GetReservation(id); if (reservation == null) { throw new iPemException("未找到数据对象"); } var nodes = _nodesInReservationService.GetNodesInReservationsInReservation(reservation.Id); data.data.id = reservation.Id; data.data.name = reservation.Name; data.data.expStartDate = CommonHelper.DateTimeConverter(reservation.ExpStartTime); data.data.startDate = CommonHelper.DateTimeConverter(reservation.StartTime); data.data.endDate = CommonHelper.DateTimeConverter(reservation.EndTime); data.data.projectId = reservation.ProjectId; data.data.creator = reservation.Creator; data.data.createdTime = CommonHelper.DateTimeConverter(reservation.CreatedTime); data.data.comment = reservation.Comment; data.data.enabled = reservation.Enabled; data.data.nodes = nodes.Select(m => Common.JoinKeys((int)m.NodeType, m.NodeId)).ToArray(); return(Json(data, JsonRequestBehavior.AllowGet)); } catch (Exception exc) { _webLogger.Error(EnmEventType.Other, exc.Message, _workContext.User().Id, exc); data.success = false; data.message = exc.Message; return(Json(data, JsonRequestBehavior.AllowGet)); } }
public JsonResult GetReservationDetails(string id) { var data = new AjaxDataModel <ReservationDetailModel> { success = true, message = "200 OK", total = 0, data = new ReservationDetailModel() { id = "", name = "", areas = "", stations = "", rooms = "", devices = "" } }; try { if (string.IsNullOrWhiteSpace(id)) { throw new ArgumentException("id"); } var current = _reservationService.GetReservation(id); if (current == null) { throw new iPemException("未找到对象"); } data.data.id = current.Id; data.data.name = current.Name; var nodes = _nodesInReservationService.GetNodesInReservationsInReservation(current.Id); //预约区域 var areaNodes = nodes.FindAll(a => a.NodeType == EnmSSH.Area); var areaMatchs = from node in areaNodes join area in _workContext.Areas() on node.NodeId equals area.Current.Id select area.Current; data.data.areas = areaMatchs.Any() ? string.Join(",", areaMatchs.Select(a => a.Name)) : "无区域"; //预约站点 var stationNodes = nodes.FindAll(a => a.NodeType == EnmSSH.Station); var stationMatchs = from node in stationNodes join station in _workContext.Stations() on node.NodeId equals station.Current.Id select station.Current; data.data.stations = stationMatchs.Any() ? string.Join(",", stationMatchs.Select(a => a.Name)) : "无站点"; //预约机房 var roomNodes = nodes.FindAll(a => a.NodeType == EnmSSH.Room); var roomMatchs = from node in roomNodes join room in _workContext.Rooms() on node.NodeId equals room.Current.Id select room.Current; data.data.rooms = roomMatchs.Any() ? string.Join(",", roomMatchs.Select(a => a.Name)) : "无机房"; //预约设备 var deviceNodes = nodes.FindAll(a => a.NodeType == EnmSSH.Device); var deviceMatchs = from node in deviceNodes join device in _workContext.Devices() on node.NodeId equals device.Current.Id select device.Current; data.data.devices = deviceMatchs.Any() ? string.Join(",", deviceMatchs.Select(a => a.Name)) : "无设备"; return(Json(data, JsonRequestBehavior.AllowGet)); } catch (Exception exc) { _webLogger.Error(EnmEventType.Other, exc.Message, _workContext.User().Id, exc); data.success = false; data.message = exc.Message; return(Json(data, JsonRequestBehavior.AllowGet)); } }
public JsonResult GetWpfObj(string node) { var data = new AjaxDataModel <GviewModel> { success = false, message = "No data", total = 0, data = null }; try { if (string.IsNullOrWhiteSpace(node)) { throw new ArgumentNullException("node"); } var nodeKey = Common.ParseNode(node); if (nodeKey.Key == EnmSSH.Area) { var current = _workContext.Areas().Find(a => a.Current.Id.Equals(nodeKey.Value)); if (current != null) { data.success = true; data.message = "200 Ok"; data.total = 1; data.data = new GviewModel(); data.data.currentId = current.Current.Id; data.data.currentType = (int)EnmAPISCObj.Area; data.data.currentName = current.Current.Name; if (current.HasParents) { var parent = current.Parents.Last(); data.data.parentId = parent.Id; data.data.parentType = (int)EnmAPISCObj.Area; data.data.parentName = parent.Name; } } } else if (nodeKey.Key == EnmSSH.Station) { var current = _workContext.Stations().Find(s => s.Current.Id.Equals(nodeKey.Value)); if (current != null) { data.success = true; data.message = "200 Ok"; data.total = 1; data.data = new GviewModel(); data.data.currentId = current.Current.Id; data.data.currentType = (int)EnmAPISCObj.Station; data.data.currentName = current.Current.Name; data.data.parentId = current.Current.AreaId; data.data.parentType = (int)EnmAPISCObj.Area; var parent = _workContext.Areas().Find(a => a.Current.Id.Equals(current.Current.AreaId)); if (parent != null) { data.data.parentName = parent.Current.Name; } } } else if (nodeKey.Key == EnmSSH.Room) { var current = _workContext.Rooms().Find(r => r.Current.Id.Equals(nodeKey.Value)); if (current != null) { data.success = true; data.message = "200 Ok"; data.total = 1; data.data = new GviewModel(); data.data.currentId = current.Current.Id; data.data.currentType = (int)EnmAPISCObj.Room; data.data.currentName = current.Current.Name; data.data.parentId = current.Current.StationId; data.data.parentType = (int)EnmAPISCObj.Station; data.data.parentName = current.Current.StationName; } } else if (nodeKey.Key == EnmSSH.Device) { var current = _workContext.Devices().Find(r => r.Current.Id.Equals(nodeKey.Value)); if (current != null) { data.success = true; data.message = "200 Ok"; data.total = 1; data.data = new GviewModel(); data.data.currentId = current.Current.Id; data.data.currentType = (int)EnmAPISCObj.Device; data.data.currentName = current.Current.Name; data.data.parentId = current.Current.RoomId; data.data.parentType = (int)EnmAPISCObj.Room; data.data.parentName = current.Current.RoomName; } } } catch (Exception exc) { data.success = false; data.message = exc.Message; } return(Json(data, JsonRequestBehavior.AllowGet)); }