コード例 #1
0
ファイル: MultiPage.xaml.cs プロジェクト: gek7/ClientServ
 private void BtnDeleteRooms_Click(object sender, RoutedEventArgs e)
 {
     if (dgRooms.SelectedIndex > -1)
     {
         if (MessageBoxResult.Yes == MessageBox.Show("Вы уверены, что хотите удалить запись?", "Удаление записи",
                                                     MessageBoxButton.YesNo, MessageBoxImage.Question))
         {
             using (HOSTELEntities DB = new HOSTELEntities())
             {
                 try
                 {
                     DB.Rooms.Remove(DB.Rooms.Find(dgRooms.SelectedValue));
                     DB.SaveChanges();
                 }
                 catch
                 {
                     MessageBox.Show($"Ошибка при удалении \n Возможно в других таблицах есть ссылки на эту запись");
                     return;
                 }
             }
             UpdateGridRooms(-1);
         }
     }
     else
     {
         MessageBox.Show("Не выбрано поле!");
     }
 }
コード例 #2
0
ファイル: RoomTypesPage.xaml.cs プロジェクト: gek7/ClientServ
 public void UpdateGrid(int selectID)
 {
     HelperClass.SaveSortDataGrid(dg);
     
     if (selectID == -1) selectID = (int)(dg?.SelectedValue ?? -1);
     using (HOSTELEntities h = new HOSTELEntities())
     {
         h.RoomTypes.Load();
         var postDB = from i in h.RoomTypes.Local
                      select new
                      {
                          id = i.RtyID,
                          i.RoomType
                      };
         dg.SelectedValuePath = "id";
         dg.ItemsSource = postDB;
     }
     dg.SelectedValue = selectID;
     if (dg.SelectedIndex > -1)
     {
         dg.ScrollIntoView(dg.SelectedItem);
     }
     else if (dg.SelectedIndex == -1 && dg.Items.Count > 0)
     {
         dg.SelectedIndex = 0;
     }
     HelperClass.LoadSortDataGrid(dg);
 }
コード例 #3
0
ファイル: PeoplePage.xaml.cs プロジェクト: gek7/ClientServ
 private void UpdateImage()
 {
     using (HOSTELEntities db = new HOSTELEntities())
     {
         // Найти в таблице People, запись, по ID, которое сейчас выбранно в таблице, и взять оттуда данные картинки
         byte[] imgData = db.People?.Find(dg.SelectedValue)?.ImageData;
         // Если данные картинки содержат что-нибудь
         if (imgData != null)
         {
             // MemoryStream - используется для чтения или записи массива байт (Картинка - набор байт)
             // Сразу инициализируем массивом байт будущей картинки
             MemoryStream stream = new MemoryStream(imgData);
             // img - картинка, которую мы будем передавать на форму
             BitmapImage img = new BitmapImage();
             // Инициализация картинки
             img.BeginInit();
             img.StreamSource = stream;
             img.EndInit();
             // Указываем источник для картинки на форме, созданный на форме картинку из БД
             pict.Source = img;
         }
         else
         {
             // Если картинки в БД нет, то вывести лицо со знаком вопроса.
             if (pict.Source.ToString() != "pack://application:,,,/Images/unknownImage.png")
             {
                 BitmapImage unknwn = new BitmapImage(new Uri("/Images/unknownImage.png", UriKind.Relative));
                 pict.Source = unknwn;
             }
         }
     }
 }
コード例 #4
0
ファイル: GroupsDialog.xaml.cs プロジェクト: gek7/ClientServ
        private void FillFields()
        {
            using (HOSTELEntities DB = new HOSTELEntities())
            {
                switch (CurMode)
                {
                case mode.Add:
                    Title = "Добавление";
                    break;

                case mode.Copy:
                    Title = "Добавление на основе существующего";
                    goto fill;

                case mode.Update:
                    Title = "Изменение";
fill:
                    using (SqlConnection connection = new SqlConnection(MainWindow.connectionString))
                    {
                        connection.Open();
                        string     SqlQuery = $"Select * from Groups where(GroupID={ID})";
                        SqlCommand command  = new SqlCommand(SqlQuery, connection);
                        // Создаётся SqlDataReader для считывания значений из запроса
                        SqlDataReader reader = command.ExecuteReader();
                        // Переходит к следующей записи (с нулевой на 1-ую)
                        reader.Read();
                        // В reader передаём какое поле нужно получить и в какой тип данных преобразовать
                        TbGroups.Text = reader.GetString(1);
                    }
                    break;
                }
            }
        }
コード例 #5
0
ファイル: PeoplePage.xaml.cs プロジェクト: gek7/ClientServ
 private void Delete_Click(object sender, RoutedEventArgs e)
 {
     if (dg.SelectedIndex > -1)
     {
         // MessageBox.Show() возвращает результат, который указывает куда нажал пользователь
         // У MessageBox.Show() можно указать набор кнопок и иконка, которая будет появляться на диалог. окне
         if (MessageBoxResult.Yes == MessageBox.Show("Вы уверены, что хотите удалить запись?", "Удаление записи",
                                                     MessageBoxButton.YesNo, MessageBoxImage.Question))
         {
             using (HOSTELEntities DB = new HOSTELEntities())
             {
                 // Конструкция try/catch для отслеживания ошибок в удалении записи
                 try
                 {
                     //Запись в таблице можно найти с помощью первичного ключа, используя метод Find
                     DB.People.Remove(DB.People.Find(dg.SelectedValue));
                     DB.SaveChanges();
                 }
                 catch
                 {
                     MessageBox.Show($"Ошибка при удалении \n Возможно в других таблицах есть ссылки на эту запись");
                     return;
                 }
             }
             UpdateGrid();
         }
     }
     else
     {
         MessageBox.Show("Не выбрано поле!");
     }
 }
コード例 #6
0
ファイル: PeopleDialog.xaml.cs プロジェクト: gek7/ClientServ
 // Этот метод заполняет объект значениями из полей диалогового окна
 private void FillObject(People p)
 {
     using (HOSTELEntities db = new HOSTELEntities())
     {
         p.Name      = TbName.Text;
         p.BirthDate = dpBirthDate.SelectedDate;
         p.SexID     = (int?)cbSexes.SelectedValue;
         p.PspNum    = TbPsp.Text;
         p.PhoneNum  = TbPhoneNumber.Text;
         p.Email     = TbEmail.Text;
         // Картинка => массив байтов
         if (Picture.Source.ToString() != "pack://application:,,,/Images/unknownImage.png")
         {
             MemoryStream memStream = new MemoryStream();
             // JpegBitmapEncoder - кодирует изображения формата jpeg
             JpegBitmapEncoder encoder = new JpegBitmapEncoder();
             // Добавлем к кадрам, которые нужно закодировать нашу картинку с формы, предварительно приведя к типу BitMapFrame
             encoder.Frames.Add(BitmapFrame.Create(Picture.Source as BitmapImage));
             // Кодирует изображение и сохраняет в поток memStream
             encoder.Save(memStream);
             // Поток преобразуем в массив байт, и передаём в объект, полученный через параметры
             p.ImageData = memStream.ToArray();
         }
     }
 }
コード例 #7
0
        bool Save()
        {
            try
            {
                using (HOSTELEntities db = new HOSTELEntities())
                {
                    Rooms r = new Rooms();
                    switch (CurMode)
                    {
                    case mode.Add:
                        goto addRoom;

                    case mode.Copy:
addRoom:
                        FillObject(r);
                        db.Rooms.Add(r);
                        break;

                    case mode.Update:
                        r = db.Rooms.Find(ID);
                        FillObject(r);
                        break;
                    }
                    db.SaveChanges();
                    CurPage.UpdateGridRooms(r.RoomID);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show($"Ошибка при сохранении \n {e.Message}");
                return(false);
            }
            return(true);
        }
コード例 #8
0
ファイル: BuildingsPage.xaml.cs プロジェクト: gek7/ClientServ
        public void UpdateGrid(int selectID)
        {
            HelperClass.SaveSortDataGrid(dg);
            if (selectID == -1)
            {
                selectID = (int)(dg?.SelectedValue ?? -1);
            }
            using (HOSTELEntities h = new HOSTELEntities())
            {
                h.Buildings.Load();
                var BuildingDB = from i in h.Buildings.Local
                                 select new
                {
                    id      = i.BuildingID,
                    Name    = i.Name,
                    Address = i.Address
                };
                dg.SelectedValuePath = "id";
                dg.ItemsSource       = BuildingDB;
            }
            dg.SelectedValue = selectID;
            if (dg.SelectedIndex > -1)
            {
                dg.ScrollIntoView(dg.SelectedItem);
            }
            else if (dg.SelectedIndex == -1 && dg.Items.Count > 0)
            {
                dg.SelectedIndex = 0;
            }

            HelperClass.LoadSortDataGrid(dg);
        }
コード例 #9
0
ファイル: PeopleDialog.xaml.cs プロジェクト: gek7/ClientServ
        private void FillFields()
        {
            // Открывается соединени
            using (HOSTELEntities db = new HOSTELEntities())
            {
                // Подгружаем таблицу Sexes, чтобы она хранилась локально
                db.Sexes.Load();
                // Источником для комбобокса указываем таблицу Sexes
                cbSexes.ItemsSource = db.Sexes.Local;
                // Элемент комбобокса будет отображать значение поля Sex
                cbSexes.DisplayMemberPath = "Sex";
                // Элемент комбобокса будет хранить значение поля SexID
                cbSexes.SelectedValuePath = "SexID";
                if (cbSexes.Items.Count > 0)
                {
                    cbSexes.SelectedIndex = 0;
                }
                // Установка заголовка в зависимости от действия, которое выбрал пользователь (Удаление, изменение, добавление)
                switch (CurMode)
                {
                case mode.Add:
                    Title = "Добавление";
                    break;

                case mode.Copy:
                    Title = "Добавление на основе существующего";
                    goto fill;

                case mode.Update:
                    Title = "Изменение";
fill:
                    // Находим запись с ID, который передали в диалоговое окно при создании
                    People p = db.People.Find(ID);
                    // Далее заполняем значениями текстбоксы, dateTimePicker, и выбираем значение у комбобокса
                    TbName.Text = p.Name;
                    dpBirthDate.SelectedDate = p.BirthDate;
                    cbSexes.SelectedValue    = p.SexID;
                    TbPsp.Text         = p.PspNum;
                    TbPhoneNumber.Text = p.PhoneNum;
                    TbEmail.Text       = p.Email;
                    // Подгрузка картинки
                    if (p.ImageData != null)
                    {
                        // MemoryStream - используется для чтения или записи массива байт (Картинка - набор байт)
                        // Сразу инициализируем массивом байт будущей картинки
                        MemoryStream stream = new MemoryStream(p.ImageData);
                        // img - картинка, которую мы будем передавать на форму
                        BitmapImage img = new BitmapImage();
                        // Инициализация картинки
                        img.BeginInit();
                        img.StreamSource = stream;
                        img.EndInit();
                        // Указываем источник для картинки на форме, созданный на форме картинку из БД
                        Picture.Source = img;
                    }
                    break;
                }
            }
        }
コード例 #10
0
        private void FillFields()
        {
            using (HOSTELEntities db = new HOSTELEntities())
            {
                // Заполнение значениями комбобокс, в котором отображаются корпуса
                db.People.Load();
                cbPeople.ItemsSource       = db.People.Local;
                cbPeople.DisplayMemberPath = "Name";
                cbPeople.SelectedValuePath = "PeopleID";
                if (cbPeople.Items.Count > 0)
                {
                    cbPeople.SelectedIndex = 0;
                }

                // Заполнение значениями комбобокс, в котором отображаются типы комнат
                db.Rooms.Load();
                db.Buildings.Load();
                var dbRooms = from i in db.Rooms.Local
                              select new
                {
                    RoomID = i.RoomID,
                    NewNum = i.Num + " Комната " + i.Buildings.Name
                };
                cbRooms.ItemsSource       = dbRooms;
                cbRooms.DisplayMemberPath = "NewNum";
                cbRooms.SelectedValuePath = "RoomID";
                if (cbRooms.Items.Count > 0)
                {
                    cbRooms.SelectedIndex = 0;
                }
                switch (CurMode)
                {
                case mode.Add:
                    Title = "Добавление";
                    break;

                case mode.Copy:
                    Title = "Добавление на основе существующего";
                    goto fill;

                case mode.Update:
                    Title = "Изменение";
fill:
                    Contracts r                  = db.Contracts.Find(ID);
                    cbPeople.SelectedValue       = r.PeopleID;
                    dpDocDate.SelectedDate       = r.DocDate;
                    dpPlanBegDate.SelectedDate   = r.PlanBegDate;
                    dpPlanEndDate.SelectedDate   = r.PlanEndDate;
                    tbPriority.Text              = r.Priority;
                    cbox.IsChecked               = r.Signed ?? false;
                    dpActualEndDate.SelectedDate = r.ActualEndDate;
                    cbRooms.SelectedValue        = r.RoomID;
                    dpAppDate.SelectedDate       = r.AppDate;
                    break;
                }
            }
        }
コード例 #11
0
ファイル: PeoplePage.xaml.cs プロジェクト: gek7/ClientServ
        // SelectID - запись с каким ID сделать выбранной после обновления таблицы
        public void UpdateGrid(int selectID)
        {
            // Вызывается созданный статический метод для сохранения сортировки таблицы данных (после обновления данных сортировка сбрасывается)
            HelperClass.SaveSortDataGrid(dg);
            //Если ID=-1, то изменить параметр selectID на ID записи, которая была выбрана до обновления таблицы
            // Если же её нет, то присвоить -1 | dg.SelectedValue возвращает ID выбранной записи. Про ? и ?? - https://metanit.com/sharp/tutorial/3.26.php

            if (selectID == -1)
            {
                selectID = (int)(dg?.SelectedValue ?? -1);
            }
            // Создания подключения
            using (HOSTELEntities db = new HOSTELEntities())
            {
                // Источник для компонента DataGrid, должен храниться локально, поэтому обращаемся к базе данных,
                // к таблице People, и вызываем метод Load(), который перенесёт данные из БД в db.People.Local()
                db.People.Load();
                // var - неявный тип данных, т.е тип данных становится известен после присвоения какого-либо значени (Обычно используется для сокращения кода)
                var PeopleDB = from p in db.People.Local // Данное выражения звучит примерно так
                               select new                // Из коллекции db.People.Local взять объект p
                {                                        // и на выходе выдать поля:
                    id = p.PeopleID,                     // PeopleID, которое будет называться id
                    p.Name,                              // Name,BirthDate,PspNum,PhoneNum,Email
                    p.BirthDate,
                    p.PspNum,
                    p.PhoneNum,
                    p.Email
                };

                //selectedValuePath - указывает на то, какое значени будет хранить каждая запись(строка) таблицы
                dg.SelectedValuePath = "id";  // Для этого мы полю PeopleID дали имя id, если не давать имя, то нужно использовать названия поля (PeopleID)
                // Указываем источник данных для таблицы данных, это коллекция, которая была инициализирована выше
                dg.ItemsSource = PeopleDB;
            }
            // Выше мы указали, что каждая строка хранит id записи, которую она хранит
            // dg.SelectedValue - указывает на id выбранной записи, также через это поле мы можем указать id записи, которую выбрать. Если записи с таким id нет, то ничего не произойдёт
            dg.SelectedValue = selectID;
            // -1 = ничего не выбрано, след-но условие: если выбрана какая-нибудь запись
            if (dg.SelectedIndex > -1)
            {
                dg.ScrollIntoView(dg.SelectedItem); // Прокрутить до выбранной записи
            }
            else if (dg.SelectedIndex == -1 && dg.Items.Count > 0)
            {
                dg.SelectedIndex = 0;
            }
            HelperClass.LoadSortDataGrid(dg); // В самом начале мы сохраняли сортировку, теперь выгружаем обратно.
            // Вызвать функцию для обновления картинки
            UpdateImage();
        }
コード例 #12
0
        private void FillFields()
        {
            using (HOSTELEntities db = new HOSTELEntities())
            {
                // Заполнение значениями комбобокс, в котором отображаются корпуса
                db.Buildings.Load();
                cbBuilding.ItemsSource       = db.Buildings.Local;
                cbBuilding.DisplayMemberPath = "Name";
                cbBuilding.SelectedValuePath = "BuildingID";
                if (cbBuilding.Items.Count > 0)
                {
                    cbBuilding.SelectedIndex = 0;
                }

                // Заполнение значениями комбобокс, в котором отображаются типы комнат
                db.RoomTypes.Load();
                cbRoomType.ItemsSource       = db.RoomTypes.Local;
                cbRoomType.DisplayMemberPath = "RoomType";
                cbRoomType.SelectedValuePath = "RtyID";
                if (cbRoomType.Items.Count > 0)
                {
                    cbRoomType.SelectedIndex = 0;
                }
                switch (CurMode)
                {
                case mode.Add:
                    Title = "Добавление";
                    cbBuilding.SelectedValue = (int?)CurPage?.dgBuildings?.SelectedValue ?? -1;
                    break;

                case mode.Copy:
                    Title = "Добавление на основе существующего";
                    goto fill;

                case mode.Update:
                    Title = "Изменение";
fill:
                    Rooms r = db.Rooms.Find(ID);
                    cbBuilding.SelectedValue = r.BuildingID;
                    TbNum.Text               = r.Num;
                    TbRoomPlaces.Text        = r.PlacesCount?.ToString() ?? "0";
                    cbRoomType.SelectedValue = r.RtyID;
                    break;
                }
            }
        }
コード例 #13
0
        private void FillFields()
        {
            using (HOSTELEntities db = new HOSTELEntities())
            {
                // Заполнение значениями комбобокс, в котором отображаются корпуса
                db.People.Load();
                cbPeople.ItemsSource       = db.People.Local;
                cbPeople.DisplayMemberPath = "Name";
                cbPeople.SelectedValuePath = "PeopleID";
                if (cbPeople.Items.Count > 0)
                {
                    cbPeople.SelectedIndex = 0;
                }

                // Заполнение значениями комбобокс, в котором отображаются типы комнат
                db.Groups.Load();
                cbGroups.ItemsSource       = db.Groups.Local;
                cbGroups.DisplayMemberPath = "GroupName";
                cbGroups.SelectedValuePath = "GroupID";
                if (cbGroups.Items.Count > 0)
                {
                    cbGroups.SelectedIndex = 0;
                }
                switch (CurMode)
                {
                case mode.Add:
                    Title = "Добавление";
                    break;

                case mode.Copy:
                    Title = "Добавление на основе существующего";
                    goto fill;

                case mode.Update:
                    Title = "Изменение";
fill:
                    Students r              = db.Students.Find(ID);
                    cbPeople.SelectedValue  = r.PeopleID;
                    dpAd.SelectedDate       = r.Ad;
                    cbGroups.SelectedValue  = r.GroupID;
                    dpFinished.SelectedDate = r.Finished;
                    break;
                }
            }
        }
コード例 #14
0
        public void UpdateGrid(int selectID)
        {
            HelperClass.SaveSortDataGrid(dg);

            if (selectID == -1)
            {
                selectID = (int)(dg?.SelectedValue ?? -1);
            }
            using (HOSTELEntities h = new HOSTELEntities())
            {
                // Подгрузка таблиц ( После этого h.Таблица.Local возвращает значения из таблицы на момент вызова Load() )
                h.People.Load();
                h.Rooms.Load();
                h.Contracts.Load();
                h.Buildings.Load();
                // var - неявный "тип", т.е неизвестный тип данных. Тип становится известным только после присвоения любого значения.
                // Присваивать значения нужно во время объявления переменной, иначе выдаст ошибку
                var ContractsDB = from i in h.Contracts.Local
                                  select new
                {
                    id            = i.ContractID,
                    Surname       = i.People.Name,
                    DocDate       = i.DocDate,
                    PlanBegDate   = i.PlanBegDate,
                    PlanEndDate   = i.PlanEndDate,
                    Priority      = i.Priority,
                    Signed        = i.Signed,
                    ActualEndDate = i.ActualEndDate,
                    Room          = i.Rooms.Num + " Комната " + i.Rooms.Buildings.Name,
                    AppDate       = i.AppDate
                };
                dg.SelectedValuePath = "id";
                dg.ItemsSource       = ContractsDB;
            }
            dg.SelectedValue = selectID;
            if (dg.SelectedIndex > -1)
            {
                dg.ScrollIntoView(dg.SelectedItem);
            }
            else if (dg.SelectedIndex == -1 && dg.Items.Count > 0)
            {
                dg.SelectedIndex = 0;
            }
            HelperClass.LoadSortDataGrid(dg);
        }
コード例 #15
0
ファイル: MultiPage.xaml.cs プロジェクト: gek7/ClientServ
        public void UpdateGridRooms(int selectID)
        {
            DataGrid dg = dgRooms;

            // Обновление таблицы данных 'Комнаты'
            dg = dgRooms;
            HelperClass.SaveSortDataGrid(dg);
            // Обновление таблицы 'комнаты'
            int?BuildID = (int?)dgBuildings?.SelectedValue;

            if (selectID == -1)
            {
                selectID = (int)(dg?.SelectedValue ?? -1);
            }
            using (HOSTELEntities h = new HOSTELEntities())
            {
                h.Rooms.Load();
                h.Buildings.Load();
                h.RoomTypes.Load();
                var RoomsDB = from i in h.Rooms.Local
                              where (i.BuildingID == BuildID)
                              select new
                {
                    id          = i.RoomID,
                    Building    = i.Buildings?.Name,
                    Num         = i.Num,
                    PlacesCount = i.PlacesCount,
                    RoomType    = i.RoomTypes?.RoomType
                };
                dg.SelectedValuePath = "id";
                dg.ItemsSource       = RoomsDB;
            }
            dg.SelectedValue = selectID;
            if (dg.SelectedIndex > -1)
            {
                dg.ScrollIntoView(dg.SelectedItem);
            }
            else if (dg.SelectedIndex == -1 && dg.Items.Count > 0)
            {
                dg.SelectedIndex = 0;
            }
            HelperClass.LoadSortDataGrid(dg);
        }
コード例 #16
0
ファイル: PeopleDialog.xaml.cs プロジェクト: gek7/ClientServ
        // Сохранение изменений в базу данных
        bool Save()
        {
            try
            {
                using (HOSTELEntities db = new HOSTELEntities())
                {
                    People r = new People();
                    switch (CurMode)
                    {
                    case mode.Add:
                        // Переход в ветку Copy
                        goto addRoom;

                    case mode.Copy:
addRoom:
                        // Заполняет объект r значениями из полей диалог. окна
                        FillObject(r);
                        // Добавляем объект в таблицу People
                        db.People.Add(r);
                        break;

                    case mode.Update:
                        // Находим запись таблицы People по id
                        r = db.People.Find(ID);
                        // Заполняем её значениями из полей диалог. окна
                        FillObject(r);
                        break;
                    }
                    // Сохраняем изменения
                    db.SaveChanges();
                    // Обновляем страницу, которая вызвала это диалог. окно
                    CurPage.UpdateGrid(r.PeopleID);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show($"Ошибка при сохранении \n {e.Message}");
                return(false);
            }
            return(true);
        }
コード例 #17
0
        bool Save()
        {
            try
            {
                using (HOSTELEntities db = new HOSTELEntities())
                {
                    Buildings b = new Buildings();
                    switch (CurMode)
                    {
                    case mode.Add:
                        goto addPost;

                    case mode.Copy:
addPost:
                        FillObject(b);
                        db.Buildings.Add(b);
                        break;

                    case mode.Update:
                        b = db.Buildings.Find(ID);
                        FillObject(b);
                        break;
                    }
                    db.SaveChanges();
                    CurPage.UpdateGrid(b.BuildingID);
                }
            }
            catch (Exception e)
            {
                if (e.HResult == -2146233087)
                {
                    MessageBox.Show($"Корпус с таким названием уже существует");
                }
                else
                {
                    MessageBox.Show($"Ошибка при сохранении \n {e.Message}");
                }
                return(false);
            }
            return(true);
        }
コード例 #18
0
        bool Save()
        {
            try
            {
                using (HOSTELEntities db = new HOSTELEntities())
                {
                    Contracts r = new Contracts();
                    switch (CurMode)
                    {
                    case mode.Add:
                        goto addRoom;

                    case mode.Copy:
addRoom:
                        FillObject(r);
                        db.Contracts.Add(r);
                        break;

                    case mode.Update:
                        r = db.Contracts.Find(ID);
                        FillObject(r);
                        break;
                    }
                    db.SaveChanges();
                    CurPage.UpdateGrid(r.ContractID);
                }
            }
            catch (Exception e)
            {
                if (e.HResult == -2146233087)
                {
                    MessageBox.Show($"Такая комната в этом корпусе уже существует");
                }
                else
                {
                    MessageBox.Show($"Ошибка при сохранении \n {e.Message}");
                }
                return(false);
            }
            return(true);
        }
コード例 #19
0
        bool Save()
        {
            try
            {
                using (HOSTELEntities db = new HOSTELEntities())
                {
                    RoomTypes r = new RoomTypes();
                    switch (CurMode)
                    {
                    case mode.Add:
                        goto addPost;

                    case mode.Copy:
addPost:
                        r.RoomType = TbRoomTypes.Text;
                        db.RoomTypes.Add(r);
                        break;

                    case mode.Update:
                        r          = db.RoomTypes.Find(ID);
                        r.RoomType = TbRoomTypes.Text;
                        break;
                    }
                    db.SaveChanges();
                    CurPage.UpdateGrid(r.RtyID);
                }
            }
            catch (Exception e)
            {
                if (e.HResult == -2146233087)
                {
                    MessageBox.Show($"Вид с таким названием уже существует");
                }
                else
                {
                    MessageBox.Show($"Ошибка при сохранении \n {e.Message}");
                }
                return(false);
            }
            return(true);
        }
コード例 #20
0
        bool Save()
        {
            try
            {
                using (HOSTELEntities db = new HOSTELEntities())
                {
                    Posts p = new Posts();
                    switch (CurMode)
                    {
                    case mode.Add:
                        goto addPost;

                    case mode.Copy:
addPost:
                        p.Post = TbPost.Text;
                        db.Posts.Add(p);
                        break;

                    case mode.Update:
                        p      = db.Posts.Find(ID);
                        p.Post = TbPost.Text;
                        break;
                    }
                    db.SaveChanges();
                    CurPage.UpdateGrid(p.PostID);
                }
            }
            catch (Exception e)
            {
                if (e.HResult == -2146233087)
                {
                    MessageBox.Show($"Такая должность уже существует");
                }
                else
                {
                    MessageBox.Show($"Ошибка при сохранении \n {e.Message}");
                }
                return(false);
            }
            return(true);
        }
コード例 #21
0
ファイル: RoomsPage.xaml.cs プロジェクト: gek7/ClientServ
        public void UpdateGrid(int selectID)
        {
            HelperClass.SaveSortDataGrid(dg);

            if (selectID == -1)
            {
                selectID = (int)(dg?.SelectedValue ?? -1);
            }
            using (HOSTELEntities h = new HOSTELEntities())
            {
                // Подгрузка таблиц ( После этого h.Таблица.Local возвращает значения из таблицы на момент вызова Load() )
                h.Rooms.Load();
                h.Buildings.Load();
                h.RoomTypes.Load();
                // var - неявный "тип", т.е неизвестный тип данных. Тип становится известным только после присвоения любого значения.
                // Присваивать значения нужно во время объявления переменной, иначе выдаст ошибку
                var RoomsDB = from i in h.Rooms.Local
                              select new
                {
                    id          = i.RoomID,
                    Building    = i.Buildings.Name,
                    Num         = i.Num,
                    PlacesCount = i.PlacesCount,
                    RoomType    = i.RoomTypes.RoomType
                };
                dg.SelectedValuePath = "id";
                dg.ItemsSource       = RoomsDB;
            }
            dg.SelectedValue = selectID;
            if (dg.SelectedIndex > -1)
            {
                dg.ScrollIntoView(dg.SelectedItem);
            }
            else if (dg.SelectedIndex == -1 && dg.Items.Count > 0)
            {
                dg.SelectedIndex = 0;
            }
            HelperClass.LoadSortDataGrid(dg);
        }
コード例 #22
0
ファイル: WorkersPage.xaml.cs プロジェクト: gek7/ClientServ
        public void UpdateGrid(int selectID)
        {
            HelperClass.SaveSortDataGrid(dg);

            if (selectID == -1)
            {
                selectID = (int)(dg?.SelectedValue ?? -1);
            }
            using (HOSTELEntities h = new HOSTELEntities())
            {
                // Подгрузка таблиц ( После этого h.Таблица.Local возвращает значения из таблицы на момент вызова Load() )
                h.Workers.Load();
                h.Posts.Load();
                h.People.Load();
                // var - неявный "тип", т.е неизвестный тип данных. Тип становится известным только после присвоения любого значения.
                // Присваивать значения нужно во время объявления переменной, иначе выдаст ошибку
                var WorkersDB = from i in h.Workers.Local
                                select new
                {
                    id       = i.WorkerID,
                    Surname  = i.People.Name,
                    Ad       = i.Ad,
                    Post     = i.Posts.Post,
                    Finished = i.Finished
                };
                dg.SelectedValuePath = "id";
                dg.ItemsSource       = WorkersDB;
            }
            dg.SelectedValue = selectID;
            if (dg.SelectedIndex > -1)
            {
                dg.ScrollIntoView(dg.SelectedItem);
            }
            else if (dg.SelectedIndex == -1 && dg.Items.Count > 0)
            {
                dg.SelectedIndex = 0;
            }
            HelperClass.LoadSortDataGrid(dg);
        }
コード例 #23
0
        private void FillFields()
        {
            using (HOSTELEntities DB = new HOSTELEntities())
            {
                switch (CurMode)
                {
                case mode.Add:
                    Title = "Добавление";
                    break;

                case mode.Copy:
                    Title = "Добавление на основе существующего";
                    goto fill;

                case mode.Update:
                    Title = "Изменение";
fill:
                    TbPost.Text = DB.Posts.Find(ID).Post;
                    break;
                }
            }
        }
コード例 #24
0
        bool Save()
        {
            int BuildID;

            try
            {
                using (HOSTELEntities db = new HOSTELEntities())
                {
                    Buildings b = new Buildings();
                    switch (CurMode)
                    {
                    case mode.Add:
                        goto addPost;

                    case mode.Copy:
addPost:
                        FillObject(b);
                        db.Buildings.Add(b);
                        break;

                    case mode.Update:
                        b = db.Buildings.Find(ID);
                        FillObject(b);
                        break;
                    }
                    db.SaveChanges();
                    BuildID = b.BuildingID;
                }
                CurPage.UpdateGrid(BuildID, -1);
            }
            catch (Exception e)
            {
                MessageBox.Show($"Ошибка при сохранении \n {e.Message}");
                return(false);
            }
            return(true);
        }
コード例 #25
0
ファイル: MultiPage.xaml.cs プロジェクト: gek7/ClientServ
        public void UpdateGridBuildings(int selectID)
        {
            // Обновление таблицы данных 'Корпуса'
            DataGrid dg = dgBuildings;

            HelperClass.SaveSortDataGrid(dg);

            // В using происходит обращение к БД и выборка значений из таблицы 'Корпуса'
            if (selectID == -1)
            {
                selectID = (int)(dg?.SelectedValue ?? -1);
            }
            using (HOSTELEntities h = new HOSTELEntities())
            {
                h.Buildings.Load();
                var BuildingDB = from i in h.Buildings.Local
                                 select new
                {
                    id      = i.BuildingID,
                    Name    = i.Name,
                    Address = i.Address
                };
                dg.SelectedValuePath = "id";
                dg.ItemsSource       = BuildingDB;
            }
            dg.SelectedValue = selectID;
            if (dg.SelectedIndex > -1)
            {
                dg.ScrollIntoView(dg.SelectedItem);
            }
            else if (dg.SelectedIndex == -1 && dg.Items.Count > 0)
            {
                dg.SelectedIndex = 0;
            }
            HelperClass.LoadSortDataGrid(dg);
        }
コード例 #26
0
        private void FillFields()
        {
            using (HOSTELEntities db = new HOSTELEntities())
            {
                switch (CurMode)
                {
                case mode.Add:
                    Title = "Добавление";
                    break;

                case mode.Copy:
                    Title = "Добавление на основе существующего";
                    goto fill;

                case mode.Update:
                    Title = "Изменение";
fill:
                    Buildings b    = db.Buildings.Find(ID);
                    TbName.Text    = b.Name;
                    TbAddress.Text = b.Address;
                    break;
                }
            }
        }