Beispiel #1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="inf"></param>
        public FeedViewModel(FeedItemInfo inf)
        {
            this.ContentId = "FeedViewModel;" + inf.Url;
            this.Icon      = "pack://application:,,,/Resources/Images/32x32/rss/rss.png";

            DisplayName = inf.Name;
            Data        = inf;

            CurrentUrl = new Uri(inf.Url);

            Messenger.Default.Register <PropertyModel>(this, ViewModelMessages.RssSortChanged,
                                                       (PropertyModel o) =>
            {
                Sort(o);
            });
        }
Beispiel #2
0
        public ViewModelBaseExtended CreateFrom(MainViewModel mvm, string contentId)
        {
            try
            {
                ViewModelBaseExtended created = null;
                Type vm = null;

                string[] param = contentId.Split(';');
                if (param.Length == 2)
                {
                    switch (param[0])
                    {
                    case "BookViewModelBase":
                        created = CreateBookModelFromFile(param[1]);
                        break;

                    case "FeedViewModel":
                        FeedItemInfo fii = WorkspaceService.Instance.Settings.Feed.Feeds.Single(p => p.Url == param[1]);
                        vm      = Type.GetType("CBR.ViewModels." + param[0]);
                        created = (ViewModelBaseExtended)ReflectionHelper.CreateInstance(vm, new object[] { fii });
                        break;
                    }
                }
                else if (param.Length == 1)
                {
                    if (!string.IsNullOrEmpty(param[0]))
                    {
                        vm = Type.GetType("CBR.ViewModels." + param[0]);

                        if (mvm.Tools.Count(p => p.GetType() == vm) == 0)
                        {
                            created = (ViewModelBaseExtended)ReflectionHelper.CreateInstance(vm);
                        }
                        else
                        {
                            mvm.Tools.Cast <ToolViewModel>().First(p => p.GetType() == vm).IsVisible = true;
                        }
                    }
                }

                if (created != null)
                {
                    if (created is DocumentViewModel)
                    {
                        mvm.Documents.Add(created as DocumentViewModel);
                    }

                    if (created is ToolViewModel)
                    {
                        mvm.Tools.Add(created as ToolViewModel);
                    }
                }

                return(created);
            }
            catch (Exception err)
            {
                LogHelper.Manage("ViewModelFactory:CreateModelFrom", err);
                return(null);
            }
        }