/
romanryazh
/
ProductionManagement
Обзор
Документация
Войти
/
romanryazh
/
ProductionManagement
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
ProductionManagement.Infrastructure/UnitOfWorkMiddleware.cs
32 строки
1 KB
Roman Ryazh
Реализация первой задачи. Добавлены сущности ProductType и EquipmentType, CRUD операции для них, реализованы необходимые для работы сервисы и компоненты конвейера.
10 авг 2025, 18:27
10 авг 2025, 18:27
a847bf0
Код
Авторство
О чём код?
using MediatR; using ProductionManagement.Domain.Interfaces; namespace ProductionManagement.Infrastructure; /// <summary> /// Реализация компонента Middleware для MediatR. /// Внедряет механизм Unit Of Work с автоматизацией транзакций. /// </summary> /// <param name="unitOfWork">Реализация паттерна единой транзакции</param> /// <typeparam name="TRequest">Тип запроса</typeparam> /// <typeparam name="TResponse">Тип Ответа</typeparam> public class UnitOfWorkMiddleware<TRequest, TResponse>(IUnitOfWork unitOfWork) : IPipelineBehavior<TRequest, TResponse> where TRequest : IBaseRequest { public async Task<TResponse> Handle(TRequest request, RequestHandlerDelegate<TResponse> next, CancellationToken ct) { try { unitOfWork.BeginTransaction(); var response = await next(ct); await unitOfWork.CommitAsync(ct); return response; } catch (Exception e) { Console.WriteLine(e); throw; } } }