public ToastWindowViewModel(Func<IChatDocument> chatDocumentCreator, IMessageBus bus, IApplicationActivator activator) { _chatDocumentCreator = chatDocumentCreator; _bus = bus; _activator = activator; Toasts = new ReactiveCollection<ToastViewModel>(); Subscribe(() => bus.Listen<ShowToastMessage>().SubscribeUI(OnShowToast)); }
public ToastWindowViewModel(Func <IChatDocument> chatDocumentCreator, IMessageBus bus, IApplicationActivator activator) { _chatDocumentCreator = chatDocumentCreator; _bus = bus; _activator = activator; Toasts = new ReactiveCollection <ToastViewModel>(); Subscribe(() => bus.Listen <ShowToastMessage>().SubscribeUI(OnShowToast)); }
public ToastViewModel(ShowToastMessage showToastMessage, IChatDocument document, IMessageBus bus, IApplicationActivator activator) { _document = document; _document.FontSize = 14; IsVisible = true; RoomName = showToastMessage.Message.Room.Name; _document.AddMessage(showToastMessage.Message.Message, showToastMessage.Message.User, null); CloseCommand = new ReactiveCommand(); ActivateCommand = new ReactiveCommand(); Closed = Observable.Timer(TimeSpan.FromSeconds(showToastMessage.Action.SecondsVisible), RxApp.TaskpoolScheduler) .Do(_ => IsClosing = true).Delay(TimeSpan.FromSeconds(2), RxApp.TaskpoolScheduler) .Select(_ => Unit.Default) .Merge(CloseCommand.Select(_ => Unit.Default)) .Merge(ActivateCommand.Select(_ => Unit.Default)); Subscribe(() =>bus.RegisterMessageSource( ActivateCommand.Select( _ => new ActivateModuleByIdMessage(ModuleNames.MainCampfireView, showToastMessage.Message.Room.Id)) .Do(_ => activator.Activate()))); }
public ToastViewModel(ShowToastMessage showToastMessage, IChatDocument document, IMessageBus bus, IApplicationActivator activator) { _document = document; _document.FontSize = 14; IsVisible = true; RoomName = showToastMessage.Message.Room.Name; _document.AddMessage(showToastMessage.Message.Message, showToastMessage.Message.User, null); CloseCommand = new ReactiveCommand(); ActivateCommand = new ReactiveCommand(); Closed = Observable.Timer(TimeSpan.FromSeconds(showToastMessage.Action.SecondsVisible), RxApp.TaskpoolScheduler) .Do(_ => IsClosing = true).Delay(TimeSpan.FromSeconds(2), RxApp.TaskpoolScheduler) .Select(_ => Unit.Default) .Merge(CloseCommand.Select(_ => Unit.Default)) .Merge(ActivateCommand.Select(_ => Unit.Default)); Subscribe(() => bus.RegisterMessageSource( ActivateCommand.Select( _ => new ActivateModuleByIdMessage(ModuleNames.MainCampfireView, showToastMessage.Message.Room.Id)) .Do(_ => activator.Activate()))); }