/// <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 ButtonSave_Click(object sender, EventArgs e) { if (isCreatedRecord) { //*Создание новой записи* Agent[] agents = (GridAgents.Grid.DataSource as Agent[]); if (agents != null) { foreach (Agent agent in agents) { RR.AddAgentList(agent, ref RA); } } RR.Add(new Record(fieldEventDate.Value, fieldSubj.Text, fieldDescription.Text, RR.GetAgentList(), Convert.ToInt32(fieldPriority.Text))); SetRecordForm(false, false); //Загрузка сохраненных данных this.GridRecords.Grid.DataSource = RR.Records(); this.GridRecords.Grid.Refresh(); //Сохранение изменений в файл RR.Save(); } else { //*Завершение редактирования текущей записи* if (RR.Count > 0) { for (int i = 0; i < RR.Count; i++) { if (RR[i].GUID == this.GridRecords.GUID) { Record editRecord = RR[i]; editRecord.EventDate = fieldEventDate.Value; editRecord.Subj = fieldSubj.Text; editRecord.Description = fieldDescription.Text; editRecord.Priority = int.Parse(fieldPriority.Text); Agent[] agents = (GridAgents.Grid.DataSource as Agent[]); if (agents != null) { // Если добавлены новые контакты то надо их сохранить foreach (Agent agent in agents) { RA.Add(agent); } editRecord.Agents = agents; } else { editRecord.Agents = null; } SetRecordForm(false, false); RR.Edit(editRecord); } } } //Загрузка сохраненных данных this.GridRecords.Grid.DataSource = RR.Records(); this.GridRecords.Grid.Refresh(); //Сохранение изменений в файл RR.Save(); } }