public ConversationViewModel(ActivityGroupViewModel targetGroup, SelfStreamViewModel selfStream, CreateMessageViewModel replyMessage = null) { _selfStream = selfStream; CurrentGroup = targetGroup; if (replyMessage == null) IsEditing = false; else { IsEditing = true; Reply = replyMessage; } if (CurrentGroup == null) { CurrentGroup = new ActivityGroupViewModel("", false); } GotoReply = new RelayCommand(() => { IsEditing = true; string targetUser = ActivityViewModel.GetAuthor(CurrentGroup.FirstActivity); if (targetUser == SnooStreamViewModel.RedditUserState.Username) { var betterActivity = ((IEnumerable<ActivityViewModel>)CurrentGroup.Activities).FirstOrDefault(vm => ActivityViewModel.GetAuthor(vm) != SnooStreamViewModel.RedditUserState.Username); if (betterActivity != null) targetUser = ActivityViewModel.GetAuthor(betterActivity); } Reply = new CreateMessageViewModel { Username = targetUser, Topic = CurrentGroup.FirstActivity.SubTitle, IsReply = true }; RaisePropertyChanged("Reply"); RaisePropertyChanged("IsEditing"); }); DeleteMessage = new RelayCommand(() => { }); GotoNewer = new RelayCommand(() => { }); GotoOlder = new RelayCommand(() => { }); }
protected void FinishInit() { Current = this; _listingFilter = new NSFWListingFilter(); if (IsInDesignMode) { _initializationBlob = new InitializationBlob { Settings = new Dictionary<string, string>(), NSFWFilter = new Dictionary<string, bool>() }; } else { OfflineService = new OfflineService(); _initializationBlob = OfflineService.LoadInitializationBlob(""); } Settings = new Model.Settings(_initializationBlob.Settings); SettingsHub = new SettingsViewModel(Settings); RedditUserState = _initializationBlob.DefaultUser ?? new UserState(); SnooStreamViewModel.ActivityManager.OAuth = SnooStreamViewModel.RedditUserState != null && SnooStreamViewModel.RedditUserState.OAuth != null ? JsonConvert.SerializeObject(SnooStreamViewModel.RedditUserState) : ""; SnooStreamViewModel.ActivityManager.CanStore = SnooStreamViewModel.RedditUserState != null && SnooStreamViewModel.RedditUserState.IsDefault; NotificationService = new Common.NotificationService(); CaptchaProvider = new CaptchaService(); RedditService = new Reddit(_listingFilter, RedditUserState, OfflineService, CaptchaProvider, "3m9rQtBinOg_rA", null, "http://www.google.com"); Login = new LoginViewModel(); _listingFilter.Initialize(Settings, OfflineService, RedditService, _initializationBlob.NSFWFilter); CommandDispatcher = new CommandDispatcher(); SubredditRiver = new SubredditRiverViewModel(_initializationBlob.Subreddits); SelfStream = new SelfStreamViewModel(); ModStream = new ModStreamViewModel(); NavMenu = new NavMenu(Enumerable.Empty<LinkRiverViewModel>(), this); MessengerInstance.Register<UserLoggedInMessage>(this, OnUserLoggedIn); if (RedditUserState.Username != null) { SelfUser = new AboutUserViewModel(RedditUserState.Username); } }