BudgetAnalyser.Engine.Widgets.ReflectionWidgetRepository.GetAll C# (CSharp) Метод

GetAll() публичный Метод

Gets all the available widgets.
public GetAll ( ) : IEnumerable
Результат IEnumerable
        public IEnumerable<Widget> GetAll()
        {
            if (this.cachedWidgets.None())
            {
                List<Type> widgetTypes = GetType().GetTypeInfo().Assembly.GetExportedTypes()
                    .Where(t => typeof(Widget).IsAssignableFrom(t) && !t.GetTypeInfo().IsAbstract)
                    .ToList();

                foreach (var widget in widgetTypes
                    .Where(t => !typeof(IUserDefinedWidget).IsAssignableFrom(t))
                    .Select(widgetType => Activator.CreateInstance(widgetType) as Widget))
                {
                    this.cachedWidgets.Add(widget.Category + widget.Name, widget);
                }
            }

            return this.cachedWidgets.Values;
        }