示例#1
0
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(tbName.Text))
            {
                MessageBox.Show("Имя художника не должно быть пустым", "Проверка");
                return;
            }
            int birth;
            int?death = null;

            if (string.IsNullOrEmpty(tbName.Text))
            {
                MessageBox.Show("Имя художника не должно быть пустым", "Проверка");
                return;
            }
            if (!int.TryParse(tbBirth.Text, out birth))
            {
                MessageBox.Show("Год рождения должен быть целым числом", "Проверка");
                return;
            }
            if (!string.IsNullOrEmpty(tbDeath.Text))
            {
                int intDeath;
                if (!int.TryParse(tbDeath.Text, out intDeath))
                {
                    MessageBox.Show("Год смерти должен быть целым числом", "Проверка");
                    return;
                }
                if (intDeath < birth)
                {
                    MessageBox.Show("Год смерти должен быть больше года рождения", "Проверка");
                    return;
                }
                death = intDeath;
            }
            //Создаем объект для передачи данных
            ArtistDto artist = new ArtistDto();

            //Заполняем объект данными
            artist.Name        = tbName.Text;
            artist.BirthYear   = birth;
            artist.DeceaseYear = death;
            artist.Nation      = cbNationality.SelectedItem as NationDto;
            //Именно тут запрашиваем реализованную ранее задачу по работе с художниками
            IArtistProcess artistProcess = ProcessFactory.GetArtistProcess();

            //если это новый объект - сохраняем его
            if (_id == 0)
            {
                //Сохраняем художника
                artistProcess.Add(artist);
            }
            else //иначе обновляем
            {
                //копируем обратно идентификатор объекта
                artist.Id = _id;
                //обновляем
                artistProcess.Update(artist);
            }

            //и закрываем форму
            Close();
        }
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            int?birth;
            int?death = null;

            if (string.IsNullOrEmpty(tbName.Text))
            {
                MessageBox.Show("Имя художника не должно быть пустым", "Проверка");
                return;
            }

            if (tbBirth.Text != "")
            {
                try
                {
                    birth = int.Parse(this.tbBirth.Text);
                }
                catch
                {
                    MessageBox.Show("Год рождения должен быть целым числом", "Проверка");
                    return;
                }
                if (birth < 1000 || birth > DateTime.Today.Year)
                {
                    MessageBox.Show("Галерея занимается продажей только произведений художников прошлого тысячелетия", "Проверка");
                    return;
                }
            }
            else
            {
                birth = null;
            }

            if (!string.IsNullOrEmpty(tbDeath.Text))
            {
                int intDeath;

                if (!int.TryParse(tbDeath.Text, out intDeath))
                {
                    MessageBox.Show("Год смерти должен быть целым числом", "Проверка");
                    return;
                }

                if (intDeath < 1000 || intDeath > DateTime.Today.Year)
                {
                    MessageBox.Show("Год смерти введён неверно", "Проверка");
                    return;
                }

                if (intDeath < birth)
                {
                    MessageBox.Show("Год смерти должен быть больше года рождения", "Проверка");
                    return;
                }
                death = intDeath;
            }

            ArtistDto artist = new ArtistDto();

            artist.Name        = tbName.Text;
            artist.BirthYear   = birth;
            artist.DeceaseYear = death;
            artist.Nation      = cbNationality.SelectedItem as NationDto;

            IArtistProcess artistProcess = ProcessFactory.GetArtistProcess();

            if (_id == 0)
            {
                artistProcess.Add(artist);
            }
            else
            {
                artist.Id = _id;
                artistProcess.Update(artist);
            }
            Close();
        }