пятница, 18 марта 2016 г.

Фильтр request модели. Web API


На днях возникла задача на проверку входных данных от пользователей: запретить отступы у  строковых данных в начале и в конце. Модель большая, делать у каждого свойства типа string что-то в стиле 

Name=model.Name.IfNotNull(x=>x.Trim())  

не хотелось. По этому пришлось поискать в интернете. Наткнулась на фильтр, который переписывает  request модель в web-api-добавляет определенный данные, причем сам тип модели не известен. Немного переделав код, получился вот такой фильтр: 

 public class TrimFieldFilterAttribute : ActionFilterAttribute
 {
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            foreach (var keyValuePair in actionContext.ActionArguments)
            {
                var model = actionContext.ActionArguments[keyValuePair.Key];
                if (model == null)
                    continue;