public void AddLookupResponsesToViewData(IAsyncRequestDispatcher asyncRequestDispatcher) { foreach (GetLookupsByCategoryResponse categoryResponse in asyncRequestDispatcher.Responses.Where(r => r.GetType() == typeof(GetLookupsByCategoryResponse))) { ViewData[categoryResponse.Category + "LookupItems"] = categoryResponse.Lookups.ToList(); } }
/// <summary> /// Adds the lookup requests. /// </summary> /// <param name="asyncRequestDispatcher">The asynchronous request dispatcher.</param> /// <param name="dtoType">Type of the dto.</param> public void AddLookupRequests ( IAsyncRequestDispatcher asyncRequestDispatcher, Type dtoType ) { var lookupCategories = dtoType.GetProperties () .Where ( p => p.PropertyType == typeof(LookupDto) || p.PropertyType == typeof(IEnumerable<LookupDto>) ) .Select ( p => { var categoryAttribute = (LookupCategoryAttribute) p.GetCustomAttributes ( typeof(LookupCategoryAttribute), false ).FirstOrDefault (); return (string) ( categoryAttribute == null ? p.Name : categoryAttribute.Category ); } ) .Distinct (); foreach ( var category in lookupCategories ) { asyncRequestDispatcher.Add ( category, new GetLookupsByCategoryRequest {Category = category} ); } }