/// <summary> /// Сохраняет все записи в указанный каталог для удобства, запрещает сохранять в каталог где находится текущий источник /// </summary> private void menuSave_Click(object sender, EventArgs e) { string currentDirectory = Directory.GetCurrentDirectory(); using (FolderBrowserDialog fbd = new FolderBrowserDialog()) { fbd.SelectedPath = currentDirectory; if (fbd.ShowDialog() == DialogResult.OK) { //Проверка, что не выбран текущий каталог if (fbd.SelectedPath == currentDirectory) { MessageBox.Show("Запрещено сохранять данные в выбранное место."); } else { if (Directory.GetFiles(fbd.SelectedPath, "RepositoryRecords.csv").Length > 0) { if (MessageBox.Show("В указанной дирректории имеются файлы которые будут презаписаны, продолжить?", "Внимание!", MessageBoxButtons.YesNo) == DialogResult.Yes) { RA.Save(fbd.SelectedPath); RR.Save(fbd.SelectedPath); } } else { RA.Save(fbd.SelectedPath); RR.Save(fbd.SelectedPath); } } } } }
/// <summary> /// Добавляет контрагентов для сохранения перед добавлением новой записи /// </summary> /// <param name="newAgent">Новый или известный КА</param> /// <param name="RA">Репозиторий контрагентов</param> public void AddAgentList(Agent newAgent, ref RepositoryAgents RA) { if (!this.AddAgentRecord.Contains(newAgent)) { RA.Add(newAgent); RA.Save(); this.AddAgentRecord.Add(newAgent); } }
/// <summary> /// Загружает все записи из указанной директории с проверкой на существование файла /// </summary> private void menuLoad_Click(object sender, EventArgs e) { string currentDirectory = Directory.GetCurrentDirectory(); using (OpenFileDialog fd = new OpenFileDialog()) { fd.InitialDirectory = currentDirectory; fd.Filter = "OWLNotebook|RepositoryRecords.csv"; fd.DefaultExt = "csv"; fd.Multiselect = false; if (fd.ShowDialog() == DialogResult.OK) { FileInfo fileInfo = new FileInfo(fd.FileName); if (fileInfo.DirectoryName == currentDirectory) { MessageBox.Show("Эти данные уже загружены."); } else { RepositoryAgents loadRA = new RepositoryAgents(); RepositoryRecords loadRR = new RepositoryRecords(); // Загрузка из указанной директории loadRA.Load(fileInfo.DirectoryName); loadRR.Load(loadRA, fileInfo.DirectoryName); RA = loadRA; RR = loadRR; // Сохранение в текущий репозиторий RA.Save(); RR.Save(); // Отменяем редактирование или создание записей this.SetRecordForm(false, false); // Загружаем текущие данные this.GridRecords.Grid.DataSource = RR.Records(); this.GridRecords.Grid.Refresh(); // Обновление данных на форме this.RefrashRecord(); } } } }