예제 #1
0
        //Кнопка сохранить
        private async void SaveBtnClick(object sender, EventArgs e)
        {
            bool result = false; // флаг успешности операции с БД

            //Валидация, если все ок идем дальше
            if (_validator.CheckAll())
            {
                if (_isEdit) // если вкл. редактирование
                {
                    if (dgv.SelectedRows.Count <= 0)
                    {
                        return;
                    }
                    if (dgv.SelectedRows[0].DataBoundItem is Room item) // получаем выбранные элемент
                    {
                        item.Title = text_txbx.Text;                    // изменяем его содержимое
                        try
                        {
                            //обновление данных в БД
                            result = await _dataService.UpdateEntityAsync(item);
                        }
                        catch (Exception exception)
                        {
                            MessageBox.Show(exception.Message, @"Ошибка",
                                            MessageBoxButtons.OK,
                                            MessageBoxIcon.Error);
                        }
                    }
                }
                else // если идет создание нового обьекта
                {
                    var item = new Room() // создаем обьект и заполняем данными
                    {
                        Title = text_txbx.Text
                    };
                    try
                    {
                        DisableControls(); //выкл контролы
                        //пытаемся добавить в БД
                        result = await _dataService.AddEntityAsync(item);
                    }
                    catch (Exception exception)
                    {
                        MessageBox.Show(exception.Message, @"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        LoadData(null);
                    }
                }
                //Если все было ок, перезагружаем данные из БД
                if (result)
                {
                    _validator.ClearValidateState();
                    LoadData(null);
                }
            }
            else
            {
                return; // если валидация провалена то выходим из метода
            }
            DisableControls();
        }
        private async void AddBtnClick(object sender, EventArgs e)
        {
            if (dgv.SelectedRows.Count != 0 && dgv.SelectedRows[0].DataBoundItem is Teacher teacher)
            {
                if (_validator.CheckAll() && prop_cmbx.SelectedItem is Property property)
                {
                    var item = new TeacherProperty()
                    {
                        TeacherId  = teacher.TeacherId,
                        PropertyId = property.PropertyId,
                        Value      = text_txbx.Text
                    };
                    if (teacher.Properties.Any(x => x.PropertyId == property.PropertyId))
                    {
                        var chproperty = teacher.Properties
                                         .FirstOrDefault(x => x.PropertyId == property.PropertyId &&
                                                         x.TeacherId == teacher.TeacherId);
                        if (chproperty != null)
                        {
                            chproperty.Value    = text_txbx.Text;
                            chproperty.Property = null;
                            chproperty.Teacher  = null;
                            await _dataService.UpdateEntityAsync(chproperty);
                        }

                        teacher.Properties =
                            await _dataService.GetEntitiesAsync <TeacherProperty>(x => x.TeacherId == teacher.TeacherId);

                        propdgv.DataSource = teacher.Properties;
                    }
                    else
                    {
                        await _dataService.AddEntityAsync(item);

                        teacher.Properties =
                            await _dataService.GetEntitiesAsync <TeacherProperty>(x => x.TeacherId == teacher.TeacherId);

                        propdgv.DataSource = teacher.Properties;
                    }

                    prop_cmbx.SelectedItem = null;
                    text_txbx.Text         = string.Empty;
                }
            }
            else
            {
                MessageBox.Show(@"Родитель не выбран!",
                                @"Ошибка",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }
예제 #3
0
        private async void SaveBtnClick(object sender, EventArgs e)
        {
            if (_validator.CheckAll())
            {
                var result = false;
                try
                {
                    bool isNew = false;
                    if (_details == null)
                    {
                        _details = new Details();
                        isNew    = true;
                    }

                    _details.Title        = name_txbx.Text;
                    _details.HourPayment  = decimal.Parse(costHour_txbx.Text);
                    _details.Phone        = phone_txbx.Text;
                    _details.City         = city_txbx.Text;
                    _details.MonthPayment = decimal.Parse(costMonth_txbx.Text);
                    _details.Address      = address_txbx.Text;
                    _details.Director     = CEO_txbx.Text;

                    if (isNew)
                    {
                        result = await _service.AddEntityAsync(_details);
                    }
                    else
                    {
                        result = await _service.UpdateEntityAsync(_details);
                    }
                }
                catch (Exception exception)
                {
                    MessageBox.Show(exception.Message
                                    , "Ошибка"
                                    , MessageBoxButtons.OK
                                    , MessageBoxIcon.Error);
                }

                if (result)
                {
                    MessageBox.Show("Операция успешна"
                                    , "Успех"
                                    , MessageBoxButtons.OK
                                    , MessageBoxIcon.Information);
                    Close();
                }
            }
        }
예제 #4
0
        //Кнопка сохранить
        private async void SaveBtnClick(object sender, EventArgs e)
        {
            bool result = false; // флаг успешности операции с БД

            //Валидация, если все ок идем дальше
            if (_validator.CheckAll() && room_cmbx.SelectedItem is Room room && group_cmbx.SelectedItem is Group group &&
                teacher_cmbx.SelectedItem is Teacher teacher && lesson_cmbx.SelectedItem is Lesson lesson)
            {
                if (_isEdit) // если вкл. редактирование
                {
                    if (dgv.SelectedRows.Count <= 0)
                    {
                        return;
                    }
                    if (dgv.SelectedRows[0].DataBoundItem is Schedule item) // получаем выбранные элемент
                    {
                        item.Group   = null;
                        item.Room    = null;
                        item.Lesson  = null;
                        item.Teacher = null;

                        item.GroupId   = group.GroupId;
                        item.LessonId  = lesson.LessonId;
                        item.TeacherId = teacher.TeacherId;
                        item.RoomId    = room.RoomId;

                        item.DateTime = DateTime.Parse(dob_txbx.Text, new CultureInfo("ru-ru"), DateTimeStyles.None);

                        try
                        {
                            //обновление данных в БД
                            result = await _dataService.UpdateEntityAsync(item);
                        }
                        catch (Exception exception)
                        {
                            MessageBox.Show(exception.Message, @"Ошибка",
                                            MessageBoxButtons.OK,
                                            MessageBoxIcon.Error);
                        }
                    }
                }
                else // если идет создание нового обьекта
                {
                    var item = new Schedule() // создаем обьект и заполняем данными
                    {
                        GroupId   = group.GroupId,
                        LessonId  = lesson.LessonId,
                        TeacherId = teacher.TeacherId,
                        RoomId    = room.RoomId,
                        DateTime  = DateTime.Parse(dob_txbx.Text, new CultureInfo("ru-ru"), DateTimeStyles.None)
                    };
                    try
                    {
                        DisableControls(); //выкл контролы
                        //пытаемся добавить в БД
                        result = await _dataService.AddEntityAsync(item);
                    }
                    catch (Exception exception)
                    {
                        MessageBox.Show(exception.Message, @"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        LoadData(null);
                    }
                }
                //Если все было ок, перезагружаем данные из БД
                if (result)
                {
                    _validator.ClearValidateState();
                    LoadData(null);
                }
            }
예제 #5
0
        private async void SaveBtnClick(object sender, EventArgs e)
        {
            if (_validator.CheckAll() &&
                nationalty_cmbx.SelectedItem is Nationality nationality &&
                status_cmbx.SelectedItem is Status status)
            {
                if (_children.ChildrenId == default) // новый детенок
                {
                    var child = new Children()
                    {
                        FirstName       = fname_txbx.Text,
                        LastName        = lname_txbx.Text,
                        Patronymic      = mname_txbx.Text,
                        DateOfBirth     = DateTime.Parse(dob_txbx.Text, cultureInfo),
                        DateOfRequest   = DateTime.Parse(dateOfRequest_txbx.Text, cultureInfo),
                        DocumentOfBirth = documentOfBirth_txbx.Text,
                        GroupId         = (group_cmbx.SelectedItem as Group)?.GroupId,
                        NationalityId   = nationality.NationalityId,
                        Referral        = referral_txbx.Text,
                        StatusId        = status.StatusId
                    };
                    if (enteredDate_txbx.Text.Length > 0)
                    {
                        child.EnteredDate = DateTime.Parse(enteredDate_txbx.Text, cultureInfo);
                    }
                    if (graduatedDate_txbx.Text.Length > 0)
                    {
                        child.GraduatedDate = DateTime.Parse(graduatedDate_txbx.Text, cultureInfo);
                    }
                    if (referralDate_txbx.Text.Length > 0)
                    {
                        child.ReferralDate = DateTime.Parse(referralDate_txbx.Text, cultureInfo);
                    }

                    child.Parents = parentData.Select(x => new ParentChildren()
                    {
                        ParentId = x.Parent.ParentId
                    }).ToList();
                    await _dataService.AddEntityAsync(child);

                    MessageBox.Show(@"Воспитанник добавлен в базу данных",
                                    @"Успех",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Asterisk);
                    Close();
                }
                else
                {
                    _children.Nationality = null;
                    _children.Group       = null;
                    _children.Status      = null;
                    _children.Parents     = null;

                    _children.FirstName       = fname_txbx.Text;
                    _children.LastName        = lname_txbx.Text;
                    _children.Patronymic      = mname_txbx.Text;
                    _children.DateOfBirth     = DateTime.Parse(dob_txbx.Text, cultureInfo);
                    _children.DateOfRequest   = DateTime.Parse(dateOfRequest_txbx.Text, cultureInfo);
                    _children.DocumentOfBirth = documentOfBirth_txbx.Text;
                    _children.GroupId         = (group_cmbx.SelectedItem as Group)?.GroupId;
                    _children.NationalityId   = nationality.NationalityId;
                    _children.Referral        = referral_txbx.Text;
                    _children.StatusId        = status.StatusId;

                    if (enteredDate_txbx.Text.Length > 0)
                    {
                        _children.EnteredDate = DateTime.Parse(enteredDate_txbx.Text, cultureInfo);
                    }
                    if (graduatedDate_txbx.Text.Length > 0)
                    {
                        _children.GraduatedDate = DateTime.Parse(graduatedDate_txbx.Text, cultureInfo);
                    }
                    if (referralDate_txbx.Text.Length > 0)
                    {
                        _children.ReferralDate = DateTime.Parse(referralDate_txbx.Text, cultureInfo);
                    }

                    await _dataService.UpdateEntityAsync(_children);

                    MessageBox.Show(@"Данные воспитанника обновлены",
                                    @"Успех",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Asterisk);
                    Close();
                }
            }
        }
예제 #6
0
        //Кнопка сохранить
        private async void SaveBtnClick(object sender, EventArgs e)
        {
            bool result = false; // флаг успешности операции с БД

            //Валидация, если все ок идем дальше
            if (_validator.CheckAll() &&
                mealtime_cmbx.SelectedItem is MealTime mealTime &&
                dish_cmbx.SelectedItem is Dish dish)
            {
                if (_isEdit) // если вкл. редактирование
                {
                    if (dgv.SelectedRows.Count <= 0)
                    {
                        return;
                    }
                    if (dgv.SelectedRows[0].DataBoundItem is Menu item)                // получаем выбранные элемент
                    {
                        item.Date       = DateTime.Parse(date_txbx.Text, CultureInfo); // изменяем его содержимое
                        item.Count      = decimal.Parse(count_txbx.Text);
                        item.MealTimeId = mealTime.MealTimeId;
                        item.DishId     = dish.DishId;

                        item.Dish     = null;
                        item.MealTime = null;

                        try
                        {
                            //обновление данных в БД
                            result = await _dataService.UpdateEntityAsync(item);
                        }
                        catch (Exception exception)
                        {
                            MessageBox.Show(exception.Message, @"Ошибка",
                                            MessageBoxButtons.OK,
                                            MessageBoxIcon.Error);
                        }
                    }
                }
                else // если идет создание нового обьекта
                {
                    var item = new Menu() // создаем обьект и заполняем данными
                    {
                        Date       = DateTime.Parse(date_txbx.Text, CultureInfo), // изменяем его содержимое
                        Count      = decimal.Parse(count_txbx.Text),
                        MealTimeId = mealTime.MealTimeId,
                        DishId     = dish.DishId
                    };
                    try
                    {
                        DisableControls(); //выкл контролы
                        //пытаемся добавить в БД
                        result = await _dataService.AddEntityAsync(item);
                    }
                    catch (Exception exception)
                    {
                        MessageBox.Show(exception.Message, @"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        LoadData(searchdate_txbx.Text);
                    }
                }
                //Если все было ок, перезагружаем данные из БД
                if (result)
                {
                    _validator.ClearValidateState();
                    LoadData(searchdate_txbx.Text);
                }
            }
예제 #7
0
        private async void LoadData()
        {
            if (_validator.CheckAll())
            {
                var gr        = dep_cmbx.SelectedItem as Group;
                var start     = new DateTime(date_dtpc.Value.Year, date_dtpc.Value.Month, 1);
                var end       = start.AddMonths(1).Subtract(new TimeSpan(0, 0, 1));
                var countDays = Math.Round((end - start).TotalDays);
                try
                {
                    Visit[] items;

                    //Получим учеников у кого нет посещений за выбранный период
                    //получим кол-во дней
                    var children = await _service.GetEntitiesAsync <Children>(x => x.GroupId == gr.GroupId);

                    var childVisits = children.Select(x => new
                    {
                        x.ChildrenId,
                        _service.GetEntitiesAsync <Visit>(c => c.ChildrenId == x.ChildrenId &&
                                                          c.Date >= start && c.Date <= end).Result
                    }).ToArray();

                    //Получаем детей у кого кол-во посещений меньше кол-ва дней в месяце
                    var missChildren = childVisits.Where(x => x.Result.Length < countDays).ToArray();
                    if (missChildren.Length > 0)
                    {
                        MessageBox.Show("Обнаружены воспитанники у которых не сформирован журнал посещений. " +
                                        "Журнал будет создан, пожалуйста, подождите." +
                                        "Это может занять до 1 минуты", "Пожалуйста подождите",
                                        MessageBoxButtons.OK,
                                        MessageBoxIcon.Information);
                        toolStripProgressBar1.Maximum = missChildren.Length;
                        toolStripProgressBar1.Value   = 0;
                    }
                    foreach (var miss in missChildren)
                    {
                        var startdate = start;
                        for (int i = 0; i < countDays; i++)
                        {
                            if (miss.Result.Any(x => x.Date.Date == startdate.AddDays(i).Date))
                            {
                                continue;
                            }
                            else
                            {
                                await _service.AddEntityAsync(new Visit()
                                {
                                    ChildrenId = miss.ChildrenId,
                                    Date       = start.Date.AddDays(i),
                                    StatusId   = 6
                                });
                            }
                        }

                        toolStripProgressBar1.Value++;
                    }

                    toolStripProgressBar1.Value = 0;

                    items = await _service.GetEntitiesAsync <Visit>(x => x.Children.GroupId == gr.GroupId &&
                                                                    x.Date >= start && x.Date <= end);

                    if (items.Length > 0)
                    {
                        try
                        {
                            var table = await VisitJournal.GetVisitGournal(items, start);

                            visit_dgv.DataSource = table;
                        }
                        catch (Exception e)
                        {
                            MessageBox.Show($"Ошибка при формировании таблицы посещений. " +
                                            $"На дату {start.ToString("dd/MM/yyyy")} "
                                            + e.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        var childrens = await _service.GetEntitiesAsync <Children>();

                        childrens = childrens.Where(x => x.Group != null &&
                                                    x.GroupId == gr.GroupId)
                                    .ToArray();
                        if (childrens.Length == 0)
                        {
                            MessageBox.Show("Нет воспитанников в выбранной группе"
                                            , "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            visit_dgv.DataSource = null;
                            return;
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                visit_dgv.DataSource = null;
            }
        }