示例#1
0
        private void AddButton_Click(object sender, EventArgs e) // Кнопка добавления источника(изменения информации об источнике).
        {
            if (!Check())
            {
                MessageBox.Show("Не все поля заполнены");
                return;
            }
            string min = "", max = "";

            min = alist[acomboBox.SelectedIndex].Born.Split('.')[2];
            max = alist[acomboBox.SelectedIndex].Die.Split('.')[2];
            if (Convert.ToInt32(ytextBox.Text) < Convert.ToInt32(min) || Convert.ToInt32(ytextBox.Text) > Convert.ToInt32(max))
            {
                MessageBox.Show("Год не входит в рамки жизни автора");
                return;
            }

            if (add == true) // В случае добавления источника.
            {
                id = 0;
                slist.Read();
                if (slist.Length == 0)
                {
                    temp = new Source(slist.RemoveSpaces(ntextBox.Text), alist[acomboBox.SelectedIndex], ytextBox.Text, slist.RemoveSpaces(inftextBox.Text), id);
                }
                else
                {
                    id   = slist[slist.Length - 1].Id + 1;
                    temp = new Source(slist.RemoveSpaces(ntextBox.Text), alist[acomboBox.SelectedIndex], ytextBox.Text, slist.RemoveSpaces(inftextBox.Text), id);
                }
                if (slist.Exist(temp))
                {
                    MessageBox.Show("Этот источник уже существует");
                    return;
                }
                slist.Add(temp);
                DialogResult = DialogResult.OK;
                slist.Write();
            }
            else // В случае изменения информации об источнике.
            {
                PList plist = new PList();
                plist.Read();
                slist.Read();
                for (int i = 0; i < slist.Length; i++)
                {
                    if (slist[i].Change)
                    {
                        slist[i].Name   = slist.RemoveSpaces(ntextBox.Text);
                        slist[i].Year   = ytextBox.Text;
                        slist[i].Author = alist[acomboBox.SelectedIndex];
                        slist[i].Info   = slist.RemoveSpaces(inftextBox.Text);
                        slist[i].Change = false;
                        for (int j = 0; j < plist.Length; j++)
                        {
                            if (plist[j].Source.Id == slist[i].Id)
                            {
                                plist[j].Source = slist[i];
                                plist[j].Author = slist[i].Author;
                                plist[j].Year   = slist[i].Year;
                            }
                        }
                        break;
                    }
                }
                slist.Write();
                plist.Write();
            }
            Clear();
            Close();
        }