Задание
Задачей проектирования данной курсовой работы является реализация приложения, предназначенного для ведения учета в музее.
Функционал программы
Со стороны обычного пользователя реализовать возможность просмотра, добавления, удаления и редактирование экспонатов, и экскурсий. Со стороны администратора реализовать возможность добавления и изменения работников музея.
Содержание отчёта к программе
1.Техническое задание
2.Научно-исследовательская часть.
2.1 Постановка задачи проетирования.
2.2 Описание предметной области.
2.3.Перечень задач, подлежащих решению в процессе разработки.
2.4 Обоснование выбора инструментов и платформы для разработки.
- Проектно-конструкторская часть.
 
3.1. Разработка структуры приложения.
3.2. Логическая схема базы данных.
3.3.Разработка интерфейса взаимодействия пользователя с системой.
3.4. Разработка архитектуры приложения.
- Проектно-технологическая часть.
 
4.1. Проектирование начального и тестового наполнения базы данных. Порядок развертывания системы.
Заключение.
Список использованных источников.
Часть описания кода в отчёте
Для поиска нужно компонента в БД, также используем метод FirstOrDefault.
var excursionDb = dbContext.Excursions.FirstOrDefault(x => x.Id == excursion.Id);
Чтобы удалить объект, используя Entity Framework, можно использовать метод Remove() на объекте DbSet. Если удаляются данные, которые еще не были вставлены в базу данных, то изменения не сохраняются. Для удаленного объекта DbContext больше не отслеживает изменения. Запрос удаления в базе данных выполняется при сохранении изменений с помощью метода DbContext.SaveChanges().
LINQ-запрос на загрузку данных заказа с идентификатором. Затем этот заказ удаляется из коллекции DbSet с использованием метода Remove(). Entity Framework сгенерирует следующий SQL-код для удаления этой записи:
DELETE [dbo].[Excursions]
WHERE ([excursion.Id] = @0)
После удаления данных из БД сохраняем все внесенные изменения, используя метод SaveChanges() из коллецкции DbSet. Так же нужно обновить отображения БД в DataGrid.
Часть кода программы:
 private async void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
        {
            using (MuseumDbContext dbContext = new MuseumDbContext())
            {
                // заполняем таблицы DataGrid по данным из БД
                DataGridEmployee.ItemsSource = await dbContext.Employees.ToListAsync();
                DataGridExcursion.ItemsSource = await dbContext.Excursions.Include(x => x.Employee).ToListAsync();
                DataGridExhibits.ItemsSource = await dbContext.Exhibits.ToListAsync();
            }
            DataGridEmployee.SelectedIndex = 0;
        }
        /// <summary>
        /// Обработка нажатия на кнопку добавления экскурсии
        /// </summary>
        private async void AddExcursionButton_OnClick(object sender, RoutedEventArgs e)
        {
            AddEditExcursionDialog addEditExcursionDialog = new AddEditExcursionDialog(((List<Employee>)DataGridEmployee.ItemsSource).Where(x=>x.Role == "Guide" || x.Role == "Admin").ToList());
            var dialog = addEditExcursionDialog.ShowDialog();
            if (dialog.HasValue && dialog.Value)
            {
                using (MuseumDbContext dbContext = new MuseumDbContext())
                {
                    // обновляем таблицу 
                    DataGridExcursion.ItemsSource = await dbContext.Excursions.Include(x => x.Employee).ToListAsync();
                    DataGridExcursion.Items.Refresh();
                }
            }
        }
-----------------------------------
В архиве:
- Расчётно пояснительная записка по БД - 27 стр. (в формате .docx и .pdf)
 - Расчётно пояснительная записка по АСОИ - 22 стр. (в формате .docx и .pdf)
 - 2 листа c UML диаграммами, по алгоритмам и логике работы программы (в формате .vsdx, .pdf и .png)
 - Презентация для выступления
 
- Программа(исходный код на C#)
 



-----------------------------------
Пояснения по запуску программы
- Запустить файл проекта в Visual Studio.
 - Дождаться установки требуемых NuGet пакетов.
 - В файле app.config поменять путь серверу PostgreSQL на ваш. Вот в этой строке
 
<connectionStrings><add
name="Default"
connectionString="host=localhost;port=5432;database=museum_db;user id=postgres;password=admin"
providerName="Npgsql" />
</connectionStrings>
нужно поменять host=localhost на ваш сервер и если отличается порт, то поменять порт (ну вообще если вы при установке сервера ничего не меняли, то должен быть такой).
- Вам необходимо так же теперь написатьUpdate-database в package manager console.
 - После скомпилировать и запустить программу.
 
                    
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                Телеграм
                            
                
-