/// <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(); } } } }
/// <summary> /// Загрузка записей записной книжки из файла /// </summary> public void Load(RepositoryAgents RA, string folder = null) { string fullFileName = folder == null ? this.FileName : folder + "\\" + this.FileName; FileInfo fileInfo = new FileInfo(fullFileName); if (fileInfo.Exists) { using (StreamReader sr = new StreamReader(fullFileName)) { while (!sr.EndOfStream) { string[] record = sr.ReadLine().Split('#'); for (int i = 0; i < record.Length; i++) { foreach (Agent agent in RA.Agents()) { if (i > 1 && record[i] == agent.GUID.ToString()) { this.AddAgentList(agent, ref RA); } } } Record addRecord = new Record(); addRecord.GUID = Guid.Parse(record[0]); addRecord.CreateDate = Convert.ToDateTime(record[1]); addRecord.EventDate = Convert.ToDateTime(record[2]); addRecord.Subj = record[3]; addRecord.Description = record[4].Replace("Environment.NewLine", "\n"); addRecord.Agents = this.GetAgentList(); addRecord.Priority = Convert.ToInt32(record[5]); this.Add(addRecord); } } } }