public async Task <JsonResult> DeleteBoxPanels([FromBody] TvBoxPanelsDto dto)
        {
            CheckApiKey();

            await _tvPanelRepository.DeleteBoxPanels(dto);

            return(Json("OK"));
        }
Ejemplo n.º 2
0
        private void OnTimerRefreshPanelsConfig(object sender, ElapsedEventArgs e)
        {
            lock (_timerConfigLocker)
            {
                try
                {
                    if (_boxId.HasValue)
                    {
                        var data = DataRepository.GetInstance().GetBoxPanels(_boxId.Value);
                        if (data.Count == 0)
                        {
                            //либо нет регистрации либо кто-то ебнул все панели
                            _logger.Error("ошибка, получена пустая конфигурация");
                            MessageBox.Show("ошибка, получена пустая конфигурация");
                            ExitApp();
                        }

                        var curScreens = ScreenHandler.GetScreens();

                        if (data.Count != curScreens.Length)
                        {
                            if (data.Count > curScreens.Length)
                            {
                                _logger.Debug("screen count changed-");

                                var dto = new TvBoxPanelsDto
                                {
                                    BoxId    = _boxId.Value,
                                    PanelIds = data.Where(o => !curScreens.Contains(o.Num)).Select(o => o.Num).ToArray()
                                };

                                DataRepository.GetInstance().DeleteBoxPanels(dto);
                            }
                            else
                            {
                                _logger.Debug("screen count changed+");
                                var dto = new TvBoxPanelsDto
                                {
                                    BoxId    = _boxId.Value,
                                    PanelIds = curScreens.Where(o => !data.Select(p => p.Num).Contains(o)).ToArray()
                                };

                                DataRepository.GetInstance().AddBoxPanels(dto);
                            }
                        }
                        //перезапросим актуальные данные после изменения числа мониторов
                        data = DataRepository.GetInstance().GetBoxPanels(_boxId.Value);

                        UpdatePanelsData(data);
                    }
                }
                catch (Exception ex)
                {
                    _logger.Error(ex, "OnTimerRefreshPanelsConfig error");
                }
            }
        }
Ejemplo n.º 3
0
        public void DeleteBoxPanels(TvBoxPanelsDto dto)
        {
            var response = _remoteClient.PostAsJsonAsync("/api/TvPanels/DeleteBoxPanels", dto).Result;

            if (!response.IsSuccessStatusCode)
            {
                _logger.Error($"DeleteBoxPanels non-success status code: {response.StatusCode}");
                throw new Exception("ошибка подключения к источнику данных");
            }
        }