Yvision.kz
kk
Разное
Разное
399 773 постов41 подписчиков
Всяко-разно
-4
20:46, 30 мая 2011

Fluent Filters для ASP.NET MVC и OXITE

FluentFilters помогает вам реализовать функциональность глобальных фильтров в ASP.NET MVC приложении с возможностью фильтрации по контроллерам и действиям контроллеров.

Разработчики OXITE реализовали собственную систему глобальных фильтров, немного похожую на FluentFilters. За исключением механизма фильтрации по контроллерам и действиям. В FluentFilters, приходится жестко прописывать названия контроллеров и действий в условии фильтра:

 
fluentFilters.Add<TestActionFilterAttribute>(a => {
a.Require(new ControllerFilterCriteria("Admin")).Or(new ControllerFilterCriteria("Manager"));
a.Exclude(new ControllerFilterCriteria("Manager")).And(new ActionFilterCriteria("Index"));
});
   

...а в OXITE это элегантно работает через MethodInfo и, само собой, проходит проверку на стадии компиляции приложения:

 
ControllerActionFilterCriteria adminActionsCriteria = new ControllerActionFilterCriteria();
adminActionsCriteria.AddMethod<BlogController>(a => a.Find());
adminActionsCriteria.AddMethod<BlogController>(a => a.FindQuery(null));
adminActionsCriteria.AddMethod<BlogController>(a => a.ItemEdit(null));
adminActionsCriteria.AddMethod<BlogController>(a => a.ItemSave(null, null));
adminActionsCriteria.AddMethod<PostController>(p => p.Add(null, null));
   
-4
343
2