FluentValidation - валидация данных с Fluent API

  Рет қаралды 13,274

Platinum DEV

Platinum DEV

Күн бұрын

Пікірлер: 29
@СтепанТихонов-т3ж
@СтепанТихонов-т3ж 3 жыл бұрын
Я не знаю, что ещё могу сделать, чтобы помочь в продвижении контента, поэтому просто буду переживать за вас всей душой... Это очень важно и прекрасно. Спасибо за неимоверное количество пользы и показ всем нам, совсем зелёным, что такое правильная архитектура.
@PlatinumTechTalks
@PlatinumTechTalks 3 жыл бұрын
Спасибо вам большое за такой искренний, теплый и добрый комментарий! Это очень приятно и ценно для нас!
@tilllindemann9794
@tilllindemann9794 Жыл бұрын
Один из самых полезных каналов по asp, который я находил
@IvanenkoStepan
@IvanenkoStepan 3 жыл бұрын
Благодарю
@denisaleksandrov9626
@denisaleksandrov9626 2 жыл бұрын
Идеальный плейлист. Спасибо)))
@serb1146
@serb1146 2 жыл бұрын
NotEmpty() проверяет на null, на пустую строку, на white spaced, на не равенство default для типа и даже на пустую коллекцию. Спасибо за видео!
@Дмитрийм-л7ф
@Дмитрийм-л7ф 3 жыл бұрын
Спасибо.
@BraentR
@BraentR 3 жыл бұрын
Спасибо
@june3878
@june3878 2 жыл бұрын
почему так мало просмотров!? это же кладезь
@valeriyfilippov9475
@valeriyfilippov9475 Жыл бұрын
Созданный ValidationBehavior не будет работать при обновлении и удалении, т.к. он обрабатывает только те команды, которые реализуют интерфейс IRequest (работать будет только создание). Команды обновления и удаления реализуют IRequest. И ещё, вызывать валидацию лучше асинхронным методом ValidateAsync, т.к. в валидаторе может использоваться MustAsync и другие асинхронные методы
@foxesfox5870
@foxesfox5870 2 жыл бұрын
Да и вообще, у нас обработка запроса: контроллер (тут понятно) медиатор: класс CreateNoteCommand прилетает в CreateNoteCommandHandler - нормально, но уже вопросы насколько обязательно заполнение пропсов контекст: в CreateNoteCommandHandler создаем и сохраняем Note (залезли в контекст, начали действовать ограничения EntitytTypeConfigurations) передавая поля экземпляра CreateNoteCommand, в котором эти поля у вас обязательны, но они ведь могут быть необязательны. Тогда логично отметить необязательные пропсы в классе CreateNoteCommand (который по сути является DTO-шным) Это проблема. Кстати говоря, если говорить конкретно про обязательность полей, я не вижу смысла прописывать это в EntitytTypeConfigurations, ведь можно в самой модели Note сделать пропс nullable. Есть ли в этом какой то практический смысл или вы вынесли в EntitytTypeConfigurations просто для примера?
@foxesfox5870
@foxesfox5870 2 жыл бұрын
Вопрос. Мы используем валидаторы в слое application, можем ли мы пробросить валидации из слоя persistence? В этом есть смысл, ведь не нужно будет 1 дублировать валидации 2 волноваться о том, что мы какие то валидации забыли добавить в application ps речь об ограничениях сущностей базы entityttypeconfigurations
@ADMIRAL_RETARD
@ADMIRAL_RETARD 3 жыл бұрын
Спасибо за видео. Возник вопрос А можно ли как-нибудь через наследование сделать одинаковую валидацию для разных команд? Т.е. чтобы не было копипасты одного и того же кода, например .NotEmpty() и тд. А сделать это как-нибудь через base.MethodName() из класса родителя в классах наследниках?
@antya1126
@antya1126 6 ай бұрын
Лучший канал по разработке на русском языке
@PlatinumTechTalks
@PlatinumTechTalks 6 ай бұрын
Спасибо за такие слова!
@bek15071991
@bek15071991 3 жыл бұрын
А можно ссылку на исходник в каждом в видео в описании добавить?
@PlatinumTechTalks
@PlatinumTechTalks 3 жыл бұрын
готово. под каждым видео были добавлены ссылки на код
@ashimovj.3893
@ashimovj.3893 2 жыл бұрын
такая ошибка выходит, народ помогите пожалуйста ''ValidationBehavior' does not implement interface member 'IPipelineBehavior.Handle(TRequest, RequestHandlerDelegate, CancellationToken)'
@serb1146
@serb1146 2 жыл бұрын
Сигнатуру метода проверь.
@shyxiaolong
@shyxiaolong Жыл бұрын
вы реализовали интерфейс IPipelineBehavior в классе ValidationBehavior ? судя по ошибке нет
@Amir-xg4nn
@Amir-xg4nn Жыл бұрын
Сигнатура метода Handle должна чуть отличаться от автора. (Все дело в порядке параметров)
@8-----3
@8-----3 Жыл бұрын
@@Amir-xg4nn Спасибо, помог
@fadidib8516
@fadidib8516 3 жыл бұрын
if only it was in english hehe.
@PlatinumTechTalks
@PlatinumTechTalks 3 жыл бұрын
Hope one day it will be in English as well :)
@anshe2676
@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ъ
@СергейХ-к6ъ 2 жыл бұрын
Спасибо за видео. При выполнении Get запроса localhost:44397/api/2.0/note при пустой базе выдает исключение Validation failed: -- UserId: 'User Id' не должно быть равно '00000000-0000-0000-0000-000000000000
@NikolayShelakhaev
@NikolayShelakhaev 2 жыл бұрын
То же самое. Не удалось выяснить, в чём дело?
@antonpudikov3990
@antonpudikov3990 2 жыл бұрын
Привет :) дело в том, что в BaseController UserId ставится как Guid.Empty для неавторизованных пользователей. Замените Guid.Empty на Guid.Parse("тут_некий_случайный_Guid_сгенерированный_где_то") и всё заработает.
@shyxiaolong
@shyxiaolong Жыл бұрын
@@antonpudikov3990 верно, видео промежуточное планировалось что только атворизованные юзеры могут получать доступ к заметкам - логично
Make Your Business Rules Cleaner With Fluent Validation
15:14
Milan Jovanović
Рет қаралды 30 М.
Валидация данных с FluentValidation в .NET и ASP.NET Core
27:47
Kirill Sachkov - Development
Рет қаралды 2,6 М.
Симбу закрыли дома?! 🔒 #симба #симбочка #арти
00:41
Симбочка Пимпочка
Рет қаралды 5 МЛН
За кого болели?😂
00:18
МЯТНАЯ ФАНТА
Рет қаралды 3,2 МЛН
كم بصير عمركم عام ٢٠٢٥😍 #shorts #hasanandnour
00:27
hasan and nour shorts
Рет қаралды 11 МЛН
How to use the Repository Design Pattern in C# and ASP.NET
18:35
tutorialsEU - C#
Рет қаралды 13 М.
Создаем масштабируемую архитектуру
14:56
Entity framework реализация патернов Relation.
25:06
Архитектор ПО. Александр Желнин
Рет қаралды 5 М.
Where To Place Your Validation Code In Clean Architecture
14:44
Milan Jovanović
Рет қаралды 21 М.
Entity Framework Core Part 9 - The Fluent API
14:43
Coding Tutorials
Рет қаралды 16 М.
Caching in ASP.NET C# - Memory Caching is AMAZING
12:24
tutorialsEU - C#
Рет қаралды 25 М.
Симбу закрыли дома?! 🔒 #симба #симбочка #арти
00:41
Симбочка Пимпочка
Рет қаралды 5 МЛН