/// <summary> /// Считывание через SAX /// </summary> /// <param name="sFileName"></param> /// <param name="pPhone"></param> public static void LoadSAX(string sFileName, CPhone pPhone) { // SAX - simple API XML pPhone.ContactList.Clear(); using (Stream pStream = File.OpenRead( sFileName)) { using (XmlReader pReader = XmlReader.Create(pStream)) { pReader.Read(); if (!pReader.ReadToFollowing("phone")) { return; } if (!pReader.ReadToFollowing("contact")) { return; } //while (pReader.NodeType != XmlNodeType.Element) //{ // pReader.Read(); //} // pReader.ReadStartElement(); while ((pReader.NodeType == XmlNodeType.Element) && pReader.Name == "contact") { CContact pC = h_ReadContact(pReader); pPhone.ContactList.Add(pC); } // pRea } } }
/// <summary> /// .ctor /// </summary> public ContactForm(CContact pContact) : this() { InitializeComponent(); Text = String.Format("Контакт телефона: {0}", String.IsNullOrEmpty(pContact.Title) ? "новая запись" : pContact.Title); m_pContact = pContact; h_FillForm(); }
private void btnAdd_Click(object sender, EventArgs e) { CContact pContact = new CContact("", "", new DateTime(1980, 1, 1)); using (ContactForm pContactForm = new ContactForm(pContact)) { DialogResult pResult = pContactForm.ShowDialog(); if (pResult == DialogResult.OK) { // ссылку на объект передавали в форму, которая его дозаполнила m_pPhone.ContactList.Add(pContact); } } }
private bool h_IsFilterFits(CContact pContact) { bool bPassed = true; if (pContact.BirthDate.Month == 1 && !chFilterJan.Checked) { bPassed = false; } if (pContact.BirthDate.Month == 2 && !chFilterFeb.Checked) { bPassed = false; } return(bPassed); }
private static CContact h_ReadContact(XmlReader pReader) { string sDate = pReader.GetAttribute("date"); pReader.ReadToFollowing("phone"); string sPhone = pReader.ReadElementString(); pReader.ReadToFollowing("title"); string sTitle = pReader.ReadElementString(); var pC = new CContact(sTitle, sPhone, DateTime.Parse(sDate)); while (pReader.NodeType != XmlNodeType.Element) { pReader.Read(); if (pReader.NodeType == XmlNodeType.None) { break; } } return(pC); }
private void h_RefreshListview() { lvList.Items.Clear(); bool bFormFilter = false; List <CContact> ar = bFormFilter // запрос отфильтрованных данных от самой бизнес-модели ? m_pPhone.ContactList // фильтрация данных осуществляется формой : m_pPhone.GetContactList( chFilterJan.Checked, chFilterFeb.Checked );; for (int ii = 0; ii < ar.Count; ii++) { CContact pContact = ar[ii]; // фильтрация формой if (bFormFilter && !h_IsFilterFits(pContact)) { continue; } // #1+ ListViewItem pItem = lvList.Items.Add((ii + 1).ToString(CultureInfo.InvariantCulture)); pItem.ForeColor = Color.Peru; pItem.Tag = pContact.Id; // #2 var pSubItem = new ListViewItem.ListViewSubItem(); pSubItem.ForeColor = Color.Red; pSubItem.Text = pContact.Title; pItem.SubItems.Add(pSubItem); // #3 pItem.SubItems.Add(pContact.Phone); } }
private void btnEdit_Click(object sender, EventArgs e) { // найти выбранную строку, взять идентификатор if (lvList.SelectedItems.Count == 0) { return; } ListViewItem pItem = lvList.SelectedItems[0]; string sGuid = pItem.Tag as string; // получить объект по идентификатору для редактирования CContact pContact = m_pPhone.GetContact(sGuid); // передать его в форму-бланк using (ContactForm pContactForm = new ContactForm(pContact)) { DialogResult pResult = pContactForm.ShowDialog(); if (pResult == DialogResult.OK) { m_pPhone.UpdateContact(pContact); } } }
/// <summary> /// Обновление данных /// </summary> /// <param name="pContact"></param> public void UpdateContact(CContact pContact) { // обновление данных в источнике по pContact.Id }