# Учебная практика

# 1 Задание

Выполнить импорт записей из пробника дема в базу данных [из архива с данными](http://lessonsource.tech:80/attachments/2)

# 2 Задание

Создать авторизацию

# 3 Задание

Создать в приложении Windows Forms смежную таблицу, а именно требуется вывести помимо данных из интересующей таблицы данные из связанных таблиц, используя [методичку](http://lessonsource.tech:80/link/27#bkmrk-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D1%87%D0%BA%D0%B0-%D0%BF%D0%BE-%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5).

### Реализация поиска и фильтрации

Вы не можете в задавать фильтрацию по IBindingList по разным причинам. перед началом поиска, выполните следующую инструкцию:

```
context.ChangeTracker.Clear();

```

Только не забудьте перепривязать события, связанные с вашим BindingSource.

Она очищает весь контекст от объектов. Далее напишите запрос по загрузке, аналогичный следующему коду

[![](https://lessonsource.tech:443/uploads/images/gallery/2026-03/scaled-1680-/image-1774676725082.png)](https://lessonsource.tech:443/uploads/images/gallery/2026-03/image-1774676725082.png)

Только нужно вместо этой строки написать фильтрацию по определенному признаку. Здесь внутри Where пишется запрос на наличие слова "Мясо" в имени продукта

```
context.Products.Where(x => x.Name.Contains("Мясо")).Load();

```

Вместо "Мясо" должна быть ваша переменная. Если у вас были еще строки с Load(), то нужно их будет повторить вместе с запросом. А потом перепривязать источники данных

[![](https://lessonsource.tech:443/uploads/images/gallery/2026-03/scaled-1680-/image-1774680920349.png)](https://lessonsource.tech:443/uploads/images/gallery/2026-03/image-1774680920349.png).

А потом обновите данные

[![](https://lessonsource.tech:443/uploads/images/gallery/2026-03/scaled-1680-/image-1774681047395.png)](https://lessonsource.tech:443/uploads/images/gallery/2026-03/image-1774681047395.png)

Обратите внимание, код не меняется в OnLoad()! Вы пишете новый код, который выполняет заново загрузку и привязку сущностей.

### Ниже показана диаграмма классов, отражающая иерархию источников данных

<div drawio-diagram="62"><img src="http://lessonsource.tech:80/uploads/images/drawio/2026-02/drawing-7-1771331313.png" alt=""/></div>

# 4 Задание

- Реализовать удаление записи
- Реализовать добавление через форму
- Реализовать изменение через форму

[методичка](http://lessonsource.tech:80/link/27#bkmrk-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D1%87%D0%BA%D0%B0-%D0%BF%D0%BE-%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5)

# 5 Задание

Реализовать cписок карточки товаров из пробника по демонстрационному экзамена.

[![](http://lessonsource.tech:80/uploads/images/gallery/2026-02/scaled-1680-/image-1770723847245.png)](http://lessonsource.tech:80/uploads/images/gallery/2026-02/image-1770723847245.png)

[методичка](http://lessonsource.tech:80/link/27#bkmrk-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D1%87%D0%BA%D0%B0-%D0%BF%D0%BE-%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5)

# 6 Задание

Создайте валидацию через IEditableObject

# 7 Задание

1. Зайти по ссылке на локальную [gitea](http://lessonsource.tech:3000)
2. Нажмите на кнопу создания нового репозитория

[![](http://lessonsource.tech:80/uploads/images/gallery/2026-02/scaled-1680-/image-1770894544571.png)](http://lessonsource.tech:80/uploads/images/gallery/2026-02/image-1770894544571.png)

Сделайте репозиторий открытым, чтобы преподаватель смог проверить ваш проект. После создания, у вас должно выйти следующее окно:

[![](http://lessonsource.tech:80/uploads/images/gallery/2026-02/scaled-1680-/image-1771055453747.png)](http://lessonsource.tech:80/uploads/images/gallery/2026-02/image-1771055453747.png)

3. Скопируйте ссылку, подчеркнутую красным цветом, это ваша ссылка на удалённый репозиторий
4. Инициализируйте в вашем проекте репозиторий. Для этого нужно выбрать Git &gt;&gt; Создать репозиторий git. Затем во вспылывающем окне выбрать локальный репозиторий

[![](http://lessonsource.tech:80/uploads/images/gallery/2026-02/scaled-1680-/image-1771055836660.png)](http://lessonsource.tech:80/uploads/images/gallery/2026-02/image-1771055836660.png)

5. Далее зайдите в Git &gt;&gt; Параметры &gt;&gt; Система управления версиями &gt;&gt; Параметры git репозитория &gt;&gt; Удалённые. Затем добавьте новый источник и вставьте туда скопированную ссылку в качестве Принести и Отправить.

[![](http://lessonsource.tech:80/uploads/images/gallery/2026-02/scaled-1680-/image-1771056497663.png)](http://lessonsource.tech:80/uploads/images/gallery/2026-02/image-1771056497663.png)

6. Затем откройтн Вид &gt;&gt; изменения git. Введите коментарий и зафиксируйтн изменения. Затем отправьте изменения в удалённый репозиторий и сообщите преподавателю его название

[![](http://lessonsource.tech:80/uploads/images/gallery/2026-02/scaled-1680-/image-1771059734371.png)](http://lessonsource.tech:80/uploads/images/gallery/2026-02/image-1771059734371.png)