Пример #1
0
 public void AddLookupResponsesToViewData(IAsyncRequestDispatcher asyncRequestDispatcher)
 {
     foreach (GetLookupsByCategoryResponse categoryResponse in asyncRequestDispatcher.Responses.Where(r => r.GetType() == typeof(GetLookupsByCategoryResponse)))
     {
         ViewData[categoryResponse.Category + "LookupItems"] = categoryResponse.Lookups.ToList();
     }
 }
Пример #2
0
        /// <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} );
            }
        }