Esempio n. 1
0
        public ColumnViewModelBase Construct(ColumnDefinition def)
        {
            // TODO: We need all contexts if SourceAccounts contains more than one id
            var context = Contexts.Contexts.FirstOrDefault(c => def.SourceAccounts.Contains(c.UserId));

            if (context == null)
            {
                return(null);
            }

            Func <ColumnArgumentsData, ColumnViewModelBase> factoryAction;

            if (FactoryMap.TryGetValue(def.Type, out factoryAction))
            {
                var argData = new ColumnArgumentsData
                {
                    Configuration = Configuration,
                    Context       = context,
                    Definition    = def,
                    Parser        = StreamingRepo.GetParser(def)
                };

                var column = factoryAction(argData);

                column.Width                 = def.Width;
                column.Muter                 = Muter;
                column.Cache                 = Cache;
                column.Dispatcher            = Dispatcher;
                column.ViewServiceRepository = ViewServiceRepository;

                return(column);
            }

            return(null);
        }
Esempio n. 2
0
 private ColumnViewModelBase UserColumn(ColumnArgumentsData args)
 {
     return(new UserColumn(args.Context, args.Definition, args.Configuration, args.Parser));
 }