Задание
Задачей проектирования данной курсовой работы является реализация приложения, предназначенного для ведения учета в музее.
Функционал программы
Со стороны обычного пользователя реализовать возможность просмотра, добавления, удаления и редактирование экспонатов, и экскурсий. Со стороны администратора реализовать возможность добавления и изменения работников музея.
Содержание отчёта к программе
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.
- После скомпилировать и запустить программу.
imlkenshi