Я не знаю, что ещё могу сделать, чтобы помочь в продвижении контента, поэтому просто буду переживать за вас всей душой... Это очень важно и прекрасно. Спасибо за неимоверное количество пользы и показ всем нам, совсем зелёным, что такое правильная архитектура.
@PlatinumTechTalks3 жыл бұрын
Спасибо вам большое за такой искренний, теплый и добрый комментарий! Это очень приятно и ценно для нас!
@tilllindemann9794 Жыл бұрын
Один из самых полезных каналов по asp, который я находил
@IvanenkoStepan3 жыл бұрын
Благодарю
@denisaleksandrov96262 жыл бұрын
Идеальный плейлист. Спасибо)))
@serb11462 жыл бұрын
NotEmpty() проверяет на null, на пустую строку, на white spaced, на не равенство default для типа и даже на пустую коллекцию. Спасибо за видео!
@Дмитрийм-л7ф3 жыл бұрын
Спасибо.
@BraentR3 жыл бұрын
Спасибо
@june38782 жыл бұрын
почему так мало просмотров!? это же кладезь
@valeriyfilippov9475 Жыл бұрын
Созданный ValidationBehavior не будет работать при обновлении и удалении, т.к. он обрабатывает только те команды, которые реализуют интерфейс IRequest (работать будет только создание). Команды обновления и удаления реализуют IRequest. И ещё, вызывать валидацию лучше асинхронным методом ValidateAsync, т.к. в валидаторе может использоваться MustAsync и другие асинхронные методы
@foxesfox58702 жыл бұрын
Да и вообще, у нас обработка запроса: контроллер (тут понятно) медиатор: класс CreateNoteCommand прилетает в CreateNoteCommandHandler - нормально, но уже вопросы насколько обязательно заполнение пропсов контекст: в CreateNoteCommandHandler создаем и сохраняем Note (залезли в контекст, начали действовать ограничения EntitytTypeConfigurations) передавая поля экземпляра CreateNoteCommand, в котором эти поля у вас обязательны, но они ведь могут быть необязательны. Тогда логично отметить необязательные пропсы в классе CreateNoteCommand (который по сути является DTO-шным) Это проблема. Кстати говоря, если говорить конкретно про обязательность полей, я не вижу смысла прописывать это в EntitytTypeConfigurations, ведь можно в самой модели Note сделать пропс nullable. Есть ли в этом какой то практический смысл или вы вынесли в EntitytTypeConfigurations просто для примера?
@foxesfox58702 жыл бұрын
Вопрос. Мы используем валидаторы в слое application, можем ли мы пробросить валидации из слоя persistence? В этом есть смысл, ведь не нужно будет 1 дублировать валидации 2 волноваться о том, что мы какие то валидации забыли добавить в application ps речь об ограничениях сущностей базы entityttypeconfigurations
@ADMIRAL_RETARD3 жыл бұрын
Спасибо за видео. Возник вопрос А можно ли как-нибудь через наследование сделать одинаковую валидацию для разных команд? Т.е. чтобы не было копипасты одного и того же кода, например .NotEmpty() и тд. А сделать это как-нибудь через base.MethodName() из класса родителя в классах наследниках?
@antya11266 ай бұрын
Лучший канал по разработке на русском языке
@PlatinumTechTalks6 ай бұрын
Спасибо за такие слова!
@bek150719913 жыл бұрын
А можно ссылку на исходник в каждом в видео в описании добавить?
@PlatinumTechTalks3 жыл бұрын
готово. под каждым видео были добавлены ссылки на код
@ashimovj.38932 жыл бұрын
такая ошибка выходит, народ помогите пожалуйста ''ValidationBehavior' does not implement interface member 'IPipelineBehavior.Handle(TRequest, RequestHandlerDelegate, CancellationToken)'
@serb11462 жыл бұрын
Сигнатуру метода проверь.
@shyxiaolong Жыл бұрын
вы реализовали интерфейс IPipelineBehavior в классе ValidationBehavior ? судя по ошибке нет
@Amir-xg4nn Жыл бұрын
Сигнатура метода Handle должна чуть отличаться от автора. (Все дело в порядке параметров)
@8-----3 Жыл бұрын
@@Amir-xg4nn Спасибо, помог
@fadidib85163 жыл бұрын
if only it was in english hehe.
@PlatinumTechTalks3 жыл бұрын
Hope one day it will be in English as well :)
@anshe2676 Жыл бұрын
После добавления кода из этого видео происходит ошибка при запуске приложения: System.AggregateException: 'Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: FluentValidation.IValidator`1[Notes.Application.Notes.Queries.GetNoteList.GetNoteListQuery] Lifetime: Transient ImplementationType: Notes.Application.Notes.Queries.GetNoteList.GetNoteListQueryValidator': A suitable constructor for type 'Notes.Application.Notes.Queries.GetNoteList.GetNoteListQueryValidator' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor.) (Error while validating the service descriptor 'ServiceType: Notes.Application.Notes.Queries.GetNoteList.GetNoteListQueryValidator Lifetime: Transient ImplementationType: Notes.Application.Notes.Queries.GetNoteList.GetNoteListQueryValidator': A suitable constructor for type 'Notes.Application.Notes.Queries.GetNoteList.GetNoteListQueryValidator' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor.)' и ещё одна: InvalidOperationException: A suitable constructor for type 'Notes.Application.Notes.Queries.GetNoteList.GetNoteListQueryValidator' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor. если удалить код из класса GetNoteListQueryValidator.cs то всё работает... Где собака зарыта, подскажите?
@СергейХ-к6ъ2 жыл бұрын
Спасибо за видео. При выполнении Get запроса localhost:44397/api/2.0/note при пустой базе выдает исключение Validation failed: -- UserId: 'User Id' не должно быть равно '00000000-0000-0000-0000-000000000000
@NikolayShelakhaev2 жыл бұрын
То же самое. Не удалось выяснить, в чём дело?
@antonpudikov39902 жыл бұрын
Привет :) дело в том, что в BaseController UserId ставится как Guid.Empty для неавторизованных пользователей. Замените Guid.Empty на Guid.Parse("тут_некий_случайный_Guid_сгенерированный_где_то") и всё заработает.
@shyxiaolong Жыл бұрын
@@antonpudikov3990 верно, видео промежуточное планировалось что только атворизованные юзеры могут получать доступ к заметкам - логично