/// <summary> /// ЛИЧНЫЙ КАБИНЕТ Вернуть страницу со списком тревожных сообщений /// Возращает список всех тревожных сообщений (event) /// Информацию о конфигурации (config) /// Информацию о текущем состоянии устройства (сделать автообновление) (head_state) /// Информацию о конфигурационной таблице устройств (head_table) /// Информацию об адресе из конфигурации (address) /// </summary> /// <param name="page"></param> /// <returns></returns> public ActionResult Index(int?page, int?idHead, string type = "all") { // !!! запрос происходит не с ObjectCardIndex а с GetEventData // check // временно передавать в модель тип текущих сообщений int _idHead = idHead == null ? 1 : (int)idHead; var dvHeadEvents = db.DvHeadEvents.Include(e => e.DvHead).Where(e => e.DvHead.Id.Equals(_idHead)).ToList(); var pageNumber = (page ?? 1); var pageSize = 6; // получить таблицы подключенных устройств TablesDto tablesDto = tableService.RequestDeviceTables(_idHead); if (tablesDto.Failure) { return(HttpNotFound()); } ; // узнать состояние DV-HEAD OMEGA HeadState headState = stateService.RequestLastStateById(_idHead); // TODO Config и Address в дальнейшем можно хранить в классе конфигурация приложения // в зависимости от типа запрашиваемых данных требуется возвращать обработанные или нет сообщения // var events = null; - check EventViewModel eventViewModel = new EventViewModel(); switch (type) { case "all": eventViewModel.Events = dvHeadEvents.OrderByDescending(o => o.Time).ToPagedList(pageNumber, pageSize); eventViewModel.Type = "all"; break; case "crud": eventViewModel.Events = dvHeadEvents.Where(o => o.Alarm > 0).OrderByDescending(o => o.Time).ToPagedList(pageNumber, pageSize); eventViewModel.Type = "crud"; break; default: eventViewModel.Events = dvHeadEvents.OrderByDescending(o => o.Time).ToPagedList(pageNumber, pageSize); eventViewModel.Type = "all"; break; } eventViewModel.ExternalTable = tablesDto.ExternalTable; eventViewModel.ConfigurationTable = tablesDto.ConfigurationTable; eventViewModel.DvHead = tablesDto.DvHead; eventViewModel.DvHeadState = headState; eventViewModel.Address = tablesDto.Address; return(View(eventViewModel)); }
/// <summary> /// Запросить таблицы устройств DV-HEAD OMEGA /// </summary> /// <param name="id">Идентификатор DV-HEAD</param> /// <returns></returns> public TablesDto RequestDeviceTables(int id) { TablesDto tablesDto = new TablesDto(); try { using (MainDbContext dbContext = new MainDbContext()) { HeadTable hd = dbContext.DvHeadTables.Where(t => t.Idhead == id).OrderByDescending(t => t.DgsTime).First(); tablesDto.DvHead = hd.DvHead; tablesDto.ConfigurationTable = ParseConfigTable(hd.ConfigurationTable).OrderBy(s => s); // the original was not sorted tablesDto.ExternalTable = ParseExternalTable(hd.ConnectedTable, tablesDto.ConfigurationTable); tablesDto.Address = hd.DvHead.Address; tablesDto.Failure = false; } } catch (Exception) { tablesDto.Failure = true; } return(tablesDto); }