Для проверки правильности выполнения практических заданий было создано 57 Unit-тестов. В пунктах 1-4, 6 - задания реализованы в виде консольных приложений. Практика по работе с SQL-запросами находится в SQLPractice
Ссылки на решения практических заданий по соответствующим темам:
- Типы значений и ссылочные типы (Value type and Reference type)
- Приведение и преобразование типов
- События. Events: INotifyPropertyChanged
- Практика List, Dictionary, Bogus
- Эквивалентность, Equals, GetHashCode
- IComparable: сравнение объектов
- ClientService и EmployeeService; Тесты: Обработка исключений (Exception handling)
- Тестирование интерфейсов для работы со списками (IEnumerable, IEnumerator)
- Практика по Generic Type + тесты
- В ApplicationDb реализуется практика по Entity Framework и миграциям: Контекст БД. Предществующие сервисы были пересозданы в соответствии с изменившимися условиям работы: ClientService, EmployeeService. Также реализуются соответствующие тесты
- Практика по Stream, FileStream, CSV файлам + тесты
- Практика по определению методов расширения, Extensions Methods (тесты)
- Практика по рефлексии, метаданным классов: Reflection (тесты)
- Многопоточность, блокировки, дедлоки, задачи и класс Task (тесты)
- Асинхронность (тесты)
- Cериализация объектов (тесты)
- Практика по созданию RESTful API сервиса
- Практика по использованию HttpClient + тесты
- Пратика по использовнию Postman
В качестве дополнения к практике было построено небольшое Blazor-приложение, реализующее часть сервисов, сделанных в процессе практики. Приложение устанавливает соединение с RESTful API сервисом, созданным ранее, при этом обновления DOM происходят в реальном времени посредством SignalR. В качестве временного представления данных используются таблицы. Для более упрощённого тестирования во всех таблицах отображаются идентификаторы. Ниже представлены скриншоты приложения.
Окно статистики банка. Реализует SQL-запросы соответствующей практики, представленные в виде диаграмм.
Окно редактирования сведений о сотрудниках банка. Реализуется система фильтрации по дате рождения, поиск сотрудника по идентификатору, а также операции CRUD над записями.
Окно редактирования сведений о клиентах и счетах банка. Реализуется система фильтрации по количеству счетов клиента, поиск клиента по идентификатору, а также операции CRUD над записями.
Пример окна редактирования. У пользователя есть возможность как удалить клиента, так и удалить его счета по отдельности.
Сервис конвертации валюты. Клиент может как продать валюту, так и купить её, заплатив дополнительную комиссию банка. Работа сервиса ограничена, так как доступ к информации о состоянии курса осуществляется через сторонний Amdoren API сервис.