Size: a a a

2020 February 23

I

Ilya in pro.net
Andrey Golubkow
Так, а если я так хочу сделать. То мне нужно сделать 3 Query(LoadFromDBQuery, DoSmthWorkQuery, MakeResultForUserQuery), и 3 хендлера, Первый принимает InputData, последний возвращает OutputData. И в конце делаю GetDataQuery<InputData,OutputData> и  в контроллере делать return mediator.Send(new GetDataQuery()) Так ?
Это уже не  к mediatr. Mediatr позволяет только обертки делать
источник

AG

Andrey Golubkow in pro.net
Т.е. он по очереди обёртки не соберёт, нужно отдельный хэндлер делать и  там самому собирать ?
источник

I

Ilya in pro.net
Хендлер это же метод, который реализует какую то use case бизнесовый
источник

I

Ilya in pro.net
Mediatr позволяет оборачивать бизнес логику
источник

I

Ilya in pro.net
И вызывает хендлеры в том порядке, в каком они зарегистрированы
источник

AG

Andrey Golubkow in pro.net
Ilya
И вызывает хендлеры в том порядке, в каком они зарегистрированы
Ну вот я немного не понимаю, как вот этот порядок сформировать. Допустим у нас есть данные из БД и нам нужно их 3мя алгоритмами по очереди обработать. В DI контейнер хендлеры сами добавляются, я просто сборку указываю, где их искать
источник

AD

Aleksandr Drozdov in pro.net
Andrey Golubkow
var result1 = mediator.Send(new LoadromDbQuery()); var result2 = mediator.Send(new DoSmthWorkQuery(result1)); var result3 = mediator.Send(new MakeResultForUser(result2)); return result3; Так ?
Вот так
источник

AG

Andrey Golubkow in pro.net
Понял) спасибо)
источник

I

Ilya in pro.net
Aleksandr Drozdov
Вот так
Ой, это выглядит неоч
источник

AG

Andrey Golubkow in pro.net
Ilya
Ой, это выглядит неоч
Согласен) Вот тут картинка красивая есть. Было бы хорошо, так сделать. Но пока я не понимаю, как это реализовать
источник

AD

Aleksandr Drozdov in pro.net
Ну, можно определить pipeline operator, и выполнить через него
источник

I

Ilya in pro.net
Andrey Golubkow
Согласен) Вот тут картинка красивая есть. Было бы хорошо, так сделать. Но пока я не понимаю, как это реализовать
Ну вот в хэндлер у тебя будет реализована бизнес логика. А в decorators выносишь инфраструктурные вещи
источник

AG

Andrey Golubkow in pro.net
Ilya
Ну вот в хэндлер у тебя будет реализована бизнес логика. А в decorators выносишь инфраструктурные вещи
Теперь вообще ничего не понял
источник

AD

Aleksandr Drozdov in pro.net
Я тоже :/
источник

I

Ilya in pro.net
Ну вот ты реализуешь задачу:
1) получить записи из базы
2) проделать работу с этими записями
3) сформировать результат для юзера
источник

I

Ilya in pro.net
Это и есть handler
источник

I

Ilya in pro.net
Но надо же ещё проверить авторизацию - для этого создаёшь декоратор
источник

I

Ilya in pro.net
Нужно ещё провалидировать - тоже создаёшь декоратор
источник

I

Ilya in pro.net
Нужно обрабатывать ошибки - делаешь декоратор
источник

AG

Andrey Golubkow in pro.net
Ну допустим, у меня есть хендлер - GetUserDataQueryHandler<UserRequest, UserResponse>, Как мне для этого декоратор сделать и как это в контроллере вызвать ?
источник