public static IBoardsReader GetDataReader(bool messageRequest = true) { if (OuthubReader == null) { bool notExist = !System.IO.File.Exists(OuthubGridFile); DataManager.Boards.Readers.BoardsReadParameters_Outhub p = new DataManager.Boards.Readers.BoardsReadParameters_Outhub(OuthubGridFile, notExist); p.OuthubOnly = true; if (notExist && messageRequest) { System.Windows.Forms.MessageBox.Show(noGridInCash, "База данных OUTHUB", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information); } DataManager.Boards.Readers.ReaderBuilder b = new DataManager.Boards.Readers.ReaderBuilder(); OuthubReader = b.Build(p); } return(OuthubReader); }
private void MnuSearchDoors_Click(object sender, System.EventArgs e) { double dist; if (!double.TryParse(txtDistance.Text, out dist)) { MessageBox.Show("Ошибка чтения ячейки с дистанцией.", "Дистанция поиска", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (dist > 2000 || dist < 1) { MessageBox.Show("Дистанция поиска может быть в диапазоне 1-2000 метров. Исправьте и повторите.", "Дистанция поиска", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } dist /= 1000; var binds = olvBinds.CollectCheckedObjects <Bind>(ObjectListViewHelper.ObjectListViewCollector.All); if (binds.Count == 0) { MessageBox.Show("Список привязок пуст. Необходимо загрузить привязки, прежде чем искать плоскости.", "Список привязок пуст", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } IBoardsReader reader = Helpers.DoorsHelper.GetDataReader(true); if (reader == null) { return; } List <IBoard> boards; if (reader.Boards == null || reader.Boards.Count == 0) { try { boards = reader.ReadData().ToList(); } catch (System.Exception ex) { MessageBox.Show("Ошибка чтения базы Infopanel:\n" + ex.Message, "Ошибка подключения к базе", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { boards = reader.Boards; } binds = binds.UpdateBoards(boards, dist).ToList(); olvBinds.UpdateObjects(binds); OlvBinds_SelectionChanged(null, null); //foreach (var bind in binds) //{ // if (bind.Error == null) // { // bind.BindedBoards = new List<IBoard>(); // foreach (var board in boards) // { // var distance = bind.Address.Coordinates.DistanceBetween(board.Location, DistanceUnits.Kilometers); // if (distance.Value <= dist) // { // bind.BindedBoards.Add(board); // } // } // olvBinds.UpdateObject(bind); // } //} }