private static async Task <T> ShowAsync <T>(Func <Task <T> > show, IDispatcherWrapper dispatcher) { lock (DialogState) { while (DialogState.Showing) { Monitor.Wait(DialogState); } DialogState.Showing = true; } // this next line creates a dependecy on the WindowService dispatcher = dispatcher ?? WindowWrapperHelper.Current().Dispatcher; dispatcher = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher)); var result = await dispatcher.DispatchAsync(async() => await show()); lock (DialogState) { DialogState.Showing = false; Monitor.PulseAll(DialogState); } return(result); }
public MainWindowViewModel( IApplicationShutdownService applicationShutdownService, IDispatcherWrapper dispatcherWrapper, ICityViewModelFactory cityViewModelFactory, IBackendClient backendClient, ITemperatureViewModelFactory temperatureViewModelFactory, IWindSpeedViewModelFactory windSpeedViewModelFactory, IWeatherViewModelFactory weatherViewModelFactory) { _cityViewModelFactory = cityViewModelFactory; _backendClient = backendClient; _weatherViewModelFactory = weatherViewModelFactory; ShutdownApplicationCommand = new RelayCommand(applicationShutdownService.Shutdown); SelectedTemperature = temperatureViewModelFactory.Create(TemperatureUnit.Celsius); _temperatureViewModels.Add(SelectedTemperature); _temperatureViewModels.Add(temperatureViewModelFactory.Create(TemperatureUnit.Fahrenheit)); SelectedWindSpeed = windSpeedViewModelFactory.Create(WindSpeedUnit.MetersPerSecond); _windSpeedViewModels.Add(SelectedWindSpeed); _windSpeedViewModels.Add(windSpeedViewModelFactory.Create(WindSpeedUnit.KilometersPerHour)); _windSpeedViewModels.Add(windSpeedViewModelFactory.Create(WindSpeedUnit.MilesPerHour)); dispatcherWrapper.BeginInvokeLowPriority(Initialize); }
public void Attach(DependencyObject associatedObject) { AssociatedObject = associatedObject; // process start if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) { element.Visibility = Visibility.Visible; } else { _dispatcher = Common.DispatcherWrapper.Current(); // throttled calculate event var observable = Observable.FromEventPattern(this, nameof(DoCalculate)); var throttled = observable.Throttle(TimeSpan.FromMilliseconds(1000)); throttled.Subscribe(x => Calculate()); // handle click element.Click += new Common.WeakReference<NavButtonBehavior, object, RoutedEventArgs>(this) { EventAction = (i, s, e) => Element_Click(s, e), DetachAction = (i, w) => element.Click -= w.Handler, }.Handler; Calculate(); } }
public void Attach(DependencyObject associatedObject) { AssociatedObject = associatedObject; // process start if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) { element.Visibility = Visibility.Visible; } else { _dispatcher = Common.DispatcherWrapper.Current(); // throttled calculate event _throttleHelper = new EventThrottleHelper(); _throttleHelper.ThrottledEvent += delegate { Calculate(); }; _throttleHelper.Throttle = 1000; // handle click element.Click += new Common.WeakReference <NavButtonBehavior, object, RoutedEventArgs>(this) { EventAction = (i, s, e) => Element_Click(s, e), DetachAction = (i, w) => element.Click -= w.Handler, }.Handler; CalculateThrottled(); BootStrapper.Current.ShellBackButtonUpdated += Current_ShellBackButtonUpdated; } }
//public static void ProcessError(IDispatcherWrapper fragment, Error error, Type request, params object[] args) //{ // if (error.Code == 406 || error.Message == null) // { // return null; // } // if (request is TL_account_saveSecureValue || request is TL_account_getAuthorizationForm) // { // if (error.Message.Contains("PHONE_NUMBER_INVALID")) // { // ShowSimpleAlert(fragment, Strings.Resources.InvalidPhoneNumber); // } // else if (error.Message.StartsWith("FLOOD_WAIT")) // { // ShowSimpleAlert(fragment, Strings.Resources.FloodWait); // } // else // { // ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred + "\n" + error.Message); // } // } // else if (request is TL_channels_joinChannel || // request is TL_channels_editAdmin || // request is TL_channels_inviteToChannel || // request is TL_messages_addChatUser || // request is TL_messages_startBot || // request is TL_channels_editBanned) // { // if (fragment != null) // { // ShowAddUserAlert(error.Message, fragment, (Boolean)args[0]); // } // else // { // if (error.Message.equals("PEER_FLOOD")) // { // NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.needShowAlert, 1); // } // } // } // else if (request is TL_messages_createChat) // { // if (error.Message.StartsWith("FLOOD_WAIT")) // { // ShowFloodWaitAlert(fragment, error.Message); // } // else // { // ShowAddUserAlert(fragment, error.Message, false); // } // } // else if (request is TL_channels_createChannel) // { // if (error.Message.StartsWith("FLOOD_WAIT")) // { // ShowFloodWaitAlert(fragment, error.Message); // } // else // { // ShowAddUserAlert(fragment, error.Message, false); // } // } // else if (request is TL_messages_editMessage) // { // if (!error.Message.Equals("MESSAGE_NOT_MODIFIED")) // { // if (fragment != null) // { // ShowSimpleAlert(fragment, Strings.Resources.EditMessageError); // } // else // { // ShowSimpleToast(fragment, Strings.Resources.EditMessageError); // } // } // } // else if (request is TL_messages_sendMessage || // request is TL_messages_sendMedia || // request is TL_messages_sendBroadcast || // request is TL_messages_sendInlineBotResult || // request is TL_messages_forwardMessages) // { // if (error.Message.Equals("PEER_FLOOD")) // { // NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.needShowAlert, 0); // } // } // else if (request is TL_messages_importChatInvite) // { // if (error.Message.StartsWith("FLOOD_WAIT")) // { // ShowSimpleAlert(fragment, Strings.Resources.FloodWait); // } // else if (error.Message.Equals("USERS_TOO_MUCH")) // { // ShowSimpleAlert(fragment, Strings.Resources.JoinToGroupErrorFull); // } // else // { // ShowSimpleAlert(fragment, Strings.Resources.JoinToGroupErrorNotExist); // } // } // else if (request is TL_messages_getAttachedStickers) // { // if (fragment != null && fragment.getParentActivity() != null) // { // Toast.makeText(fragment.getParentActivity(), Strings.Resources.ErrorOccurred + "\n" + error.text, Toast.LENGTH_SHORT).show(); // } // } // else if (request is TL_account_confirmPhone || request is TL_account_verifyPhone || request is TL_account_verifyEmail) // { // if (error.Message.Contains("PHONE_CODE_EMPTY") || error.Message.Contains("PHONE_CODE_INVALID") || error.Message.Contains("CODE_INVALID") || error.Message.Contains("CODE_EMPTY")) // { // ShowSimpleAlert(fragment, Strings.Resources.InvalidCode); // } // else if (error.Message.Contains("PHONE_CODE_EXPIRED") || error.Message.Contains("EMAIL_VERIFY_EXPIRED")) // { // ShowSimpleAlert(fragment, Strings.Resources.CodeExpired); // } // else if (error.Message.StartsWith("FLOOD_WAIT")) // { // ShowSimpleAlert(fragment, Strings.Resources.FloodWait); // } // else // { // ShowSimpleAlert(fragment, error.Message); // } // } // else if (request is TL_auth_resendCode) // { // if (error.Message.Contains("PHONE_NUMBER_INVALID")) // { // ShowSimpleAlert(fragment, Strings.Resources.InvalidPhoneNumber); // } // else if (error.Message.Contains("PHONE_CODE_EMPTY") || error.Message.Contains("PHONE_CODE_INVALID")) // { // ShowSimpleAlert(fragment, Strings.Resources.InvalidCode); // } // else if (error.Message.Contains("PHONE_CODE_EXPIRED")) // { // ShowSimpleAlert(fragment, Strings.Resources.CodeExpired); // } // else if (error.Message.StartsWith("FLOOD_WAIT")) // { // ShowSimpleAlert(fragment, Strings.Resources.FloodWait); // } // else if (error.Code != -1000) // { // ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred + "\n" + error.Message); // } // } // else if (request is TL_account_sendConfirmPhoneCode) // { // if (error.Code == 400) // { // return ShowSimpleAlert(fragment, Strings.Resources.CancelLinkExpired); // } // else if (error.Message != null) // { // if (error.Message.StartsWith("FLOOD_WAIT")) // { // return ShowSimpleAlert(fragment, Strings.Resources.FloodWait); // } // else // { // return ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred); // } // } // } // else if (request is TL_account_changePhone) // { // if (error.Message.Contains("PHONE_NUMBER_INVALID")) // { // ShowSimpleAlert(fragment, Strings.Resources.InvalidPhoneNumber); // } // else if (error.Message.Contains("PHONE_CODE_EMPTY") || error.Message.Contains("PHONE_CODE_INVALID")) // { // ShowSimpleAlert(fragment, Strings.Resources.InvalidCode); // } // else if (error.Message.Contains("PHONE_CODE_EXPIRED")) // { // ShowSimpleAlert(fragment, Strings.Resources.CodeExpired); // } // else if (error.Message.StartsWith("FLOOD_WAIT")) // { // ShowSimpleAlert(fragment, Strings.Resources.FloodWait); // } // else // { // ShowSimpleAlert(fragment, error.Message); // } // } // else if (request is TL_account_sendChangePhoneCode) // { // if (error.Message.Contains("PHONE_NUMBER_INVALID")) // { // ShowSimpleAlert(fragment, Strings.Resources.InvalidPhoneNumber); // } // else if (error.Message.Contains("PHONE_CODE_EMPTY") || error.Message.Contains("PHONE_CODE_INVALID")) // { // ShowSimpleAlert(fragment, Strings.Resources.InvalidCode); // } // else if (error.Message.Contains("PHONE_CODE_EXPIRED")) // { // ShowSimpleAlert(fragment, Strings.Resources.CodeExpired); // } // else if (error.Message.StartsWith("FLOOD_WAIT")) // { // ShowSimpleAlert(fragment, Strings.Resources.FloodWait); // } // else if (error.Message.StartsWith("PHONE_NUMBER_OCCUPIED")) // { // ShowSimpleAlert(fragment, LocaleController.formatString("ChangePhoneNumberOccupied", R.string.ChangePhoneNumberOccupied, (String)args[0])); // } // else // { // ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred); // } // } // else if (request is TL_updateUserName) // { // switch (error.Message) // { // case "USERNAME_INVALID": // ShowSimpleAlert(fragment, Strings.Resources.UsernameInvalid); // break; // case "USERNAME_OCCUPIED": // ShowSimpleAlert(fragment, Strings.Resources.UsernameInUse); // break; // default: // ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred); // break; // } // } // else if (request is TL_contacts_importContacts) // { // if (error == null || error.Message.StartsWith("FLOOD_WAIT")) // { // ShowSimpleAlert(fragment, Strings.Resources.FloodWait); // } // else // { // ShowSimpleAlert(fragment, Strings.Resources.ErrorOccurred + "\n" + error.Message); // } // } // else if (request is TL_account_getPassword || request is TL_account_getTmpPassword) // { // if (error.Message.StartsWith("FLOOD_WAIT")) // { // ShowSimpleToast(fragment, getFloodWaitString(error.Message)); // } // else // { // ShowSimpleToast(fragment, error.Message); // } // } // else if (request is TL_payments_sendPaymentForm) // { // switch (error.Message) // { // case "BOT_PRECHECKOUT_FAILED": // ShowSimpleToast(fragment, Strings.Resources.PaymentPrecheckoutFailed); // break; // case "PAYMENT_FAILED": // ShowSimpleToast(fragment, Strings.Resources.PaymentFailed); // break; // default: // ShowSimpleToast(fragment, error.Message); // break; // } // } // else if (request is TL_payments_validateRequestedInfo) // { // switch (error.Message) // { // case "SHIPPING_NOT_AVAILABLE": // ShowSimpleToast(fragment, Strings.Resources.PaymentNoShippingMethod); // break; // default: // ShowSimpleToast(fragment, error.Message); // break; // } // } //} private static async void ShowPeerFloodAlert(IDispatcherWrapper fragment, int reason) { var dialog = new TLMessageDialog(); dialog.Title = Strings.Resources.AppName; dialog.PrimaryButtonText = Strings.Resources.OK; if (reason != 2) { dialog.SecondaryButtonText = Strings.Resources.MoreInfo; dialog.SecondaryButtonClick += (s, args) => { MessageHelper.NavigateToUsername(null, null, "spambot", null, null, null); }; } if (reason == 0) { dialog.Message = Strings.Resources.NobodyLikesSpam1; } else if (reason == 1) { dialog.Message = Strings.Resources.NobodyLikesSpam2; } else if (reason == 2) { //builder.setMessage((String)args[1]); } await dialog.ShowQueuedAsync(); }
public void Attach(DependencyObject associatedObject) { AssociatedObject = associatedObject; // process start if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) { element.Visibility = Visibility.Visible; } else { _dispatcher = Common.DispatcherWrapper.Current(); // throttled calculate event var observable = Observable.FromEventPattern(this, nameof(DoCalculate)); var throttled = observable.Throttle(TimeSpan.FromMilliseconds(1000)); throttled.Subscribe(x => Calculate()); // handle click element.Click += new Common.WeakReference <NavButtonBehavior, object, RoutedEventArgs>(this) { EventAction = (i, s, e) => Element_Click(s, e), DetachAction = (i, w) => element.Click -= w.Handler, }.Handler; Calculate(); } }
public NavButtonBehavior() { _dispatcher = Common.DispatcherWrapper.Current(); _throttleHelper = new EventThrottleHelper { Throttle = 1000 }; }
public DialogsService(IDispatcherWrapper dispatcherWrapper, ILocService locService) { _dispatcherWrapper = dispatcherWrapper; _locService = locService; _queue = new TaskQueue(); }
public TransferViewModel( IDownloadsService downloadsService, IUploadsService uploadsService, IDialogsService dialogsService, IAppLoaderService appLoaderService, ILocService locService, IDispatcherWrapper dispatcherWrapper) { _downloadsService = downloadsService; _uploadsService = uploadsService; _dialogsService = dialogsService; _appLoaderService = appLoaderService; _locService = locService; _dispatcherWrapper = dispatcherWrapper; Downloads = new ObservableCollection <TransferItemViewModel>(); Uploads = new ObservableCollection <TransferItemViewModel>(); ShowInfoCommand = new DelegateCommand <TransferItemViewModel>(OnShowInfoCommand); CancelDownloadCommand = new DelegateCommand <TransferItemViewModel>(OnCancelDownloadCommand); CancelUploadCommand = new DelegateCommand <TransferItemViewModel>(OnCancelUploadCommand); PauseDownloadCommand = new DelegateCommand <TransferItemViewModel>(OnPauseResumeDownloadCommand); ResumeDownloadCommand = new DelegateCommand <TransferItemViewModel>(OnPauseResumeDownloadCommand); CancelAllDownloadsCommand = new DelegateCommand(OnCancelAllDownloadsCommand, CanExecuteCancelAllDownloadsCommand); CancelAllUploadsCommand = new DelegateCommand(OnCancelAllUploadsCommand, CanExecuteCancelAllUploadsCommand); }
public void Attach(DependencyObject associatedObject) { AssociatedObject = associatedObject; // process start if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) { element.Visibility = Visibility.Visible; } else { _dispatcher = Common.DispatcherWrapper.Current(); // throttled calculate event _throttleHelper = new EventThrottleHelper(); _throttleHelper.ThrottledEvent += delegate { Calculate(); }; _throttleHelper.Throttle = 1000; // handle click element.Click += new Common.WeakReference<NavButtonBehavior, object, RoutedEventArgs>(this) { EventAction = (i, s, e) => Element_Click(s, e), DetachAction = (i, w) => element.Click -= w.Handler, }.Handler; CalculateThrottled(); } }
public NavButtonBehavior() { if (!Windows.ApplicationModel.DesignMode.DesignModeEnabled) { _dispatcher = Common.DispatcherWrapper.Current(); _throttleHelper = new EventThrottleHelper { Throttle = 1000 }; } }
public UnigramViewModelBase(IMTProtoService protoService, ICacheService cacheService, ITelegramEventAggregator aggregator, IDispatcherWrapper dispatcher) { _protoService = protoService; _cacheService = cacheService; _aggregator = aggregator; _dispatcher = dispatcher; }
public static void ShowFloodWaitAlert(IDispatcherWrapper fragment, String error) { if (error == null || !error.StartsWith("FLOOD_WAIT")) { return; } ShowSimpleAlert(fragment, GetFloodWaitString(error)); }
public ProtocolHandler( ILogService logService, INavigationService navigationService, IDispatcherWrapper dispatcherWrapper) { _logService = logService; _navigationService = navigationService; _dispatcherWrapper = dispatcherWrapper; }
/// <summary> /// Initializes a new instance of the <see cref="WindowsVoiceBox"/> class. /// </summary> /// <param name="dispatcher">The dispatcher.</param> public WindowsVoiceBox(IDispatcherWrapper dispatcher) { mediaPlayer.MediaEnded += MediaPlayer_MediaEnded; this.dispatcher = dispatcher; synth = new SpeechSynthesizer { Voice = SpeechSynthesizer.AllVoices.Where(v => v.Gender == VoiceGender.Female).First() }; }
public FolderCopyViewModel(IDispatcherWrapper dispatcher, IFolderSearcher folderSearcher, IRandomFolderSelector folderSelector, IFolderCopier folderCopier, ISerializationHelper serializationHelper, IDialogService dialogService, IOpenerHelper openerHelper) : base(dispatcher ?? new DispatcherWrapper(), serializationHelper ?? new SerializationHelper(), dialogService ?? new DialogService(), openerHelper ?? new OpenerHelper()) { _folderSearcher = folderSearcher ?? new FolderSearcher(); _folderSelector = folderSelector ?? new RandomFolderSelector(); _folderCopier = folderCopier ?? new FolderCopier(); SelectionModel = new SelectionModel(0, 100, UnitSize.GB); Model = new SourceDestinationModel <CopyRepresenter>(); }
public AudioCopyViewModel(IFileSearcher fileSearcher, IDispatcherWrapper dispatcher, IRandomAudioFileSelector randomFileSelector, ISerializationHelper serializationHelper, IDialogService dialogService, IOpenerHelper openerHelper, IConfigurationHelper configurationHelper) : base(fileSearcher ?? new FileSearcher(), dispatcher ?? new DispatcherWrapper(), serializationHelper ?? new SerializationHelper(), dialogService ?? new DialogService(), openerHelper ?? new OpenerHelper(), configurationHelper ?? new ConfigurationHelper()) { _randomAudioFileSelector = randomFileSelector ?? new RandomAudioFileSelector(); SelectionModel = new SelectionModel(0, 350, UnitSize.MB); var settings = ConfigurationHelper.GetExtensions(ExtensionsAppsettingKey.AudioExtensions); AudioExtensions = new ObservableCollection <string>(settings.Select(x => x.Extension)); Model = new AudioSourceDestinationModel(settings.Where(x => x.DefaultSelected).Select(x => x.Extension)); }
/// <summary> /// Initializes a new instance of the MainViewModel class. /// </summary> protected CopyViewModel(IDispatcherWrapper dispatcher, ISerializationHelper serializationHelper, IDialogService dialogService, IOpenerHelper openerHelper) { _isSliderLoaded = false; _dragStarted = false; _serializationHelper = serializationHelper; _dialogService = dialogService; _openerHelper = openerHelper; Dispatcher = dispatcher; SetCommands(); }
public CanvasViewModel3d( IBitmapSource bitmapSource, IScene3D scene3D, ILogger logger, IDispatcherWrapper dispatcherWrapper) { _bitmapSource = bitmapSource; _scene3D = scene3D; _logger = logger; _dispatcherWrapper = dispatcherWrapper; }
public StockDataViewModel(IBusinessLogic businessLogic, string fileName = null, IConfigReader confreader = null, IDispatcherWrapper dispatcherWrapper = null) { path = path + fileName; _dispatcherWrapper = dispatcherWrapper ?? new DispatcherWrapper(Application.Current.Dispatcher); bizLogic = businessLogic; AllCompanies = bizLogic.GetAllCompanies(); confReader = confreader; ShowDefinedStocks(confReader); InitTimer(); }
public FeedbackService( ISettingsService settingsService, IDialogsService dialogsService, IDispatcherWrapper dispatcherWrapper, ILocService locService) { _settingsService = settingsService; _dialogsService = dialogsService; _dispatcherWrapper = dispatcherWrapper; _locService = locService; }
/// <summary> /// Removes a lock count from the notification counter and fires a reset if the count is at zero. /// </summary> /// <param name="notify">The dispatcher wrapper to used for thread access.</param> public void EndUpdate(IDispatcherWrapper notify = null) { try { _suppressNotification--; } finally { Reset(notify); } }
public VksmExtractionViewModel( INavigationService navigationService, IVksmExtractionService vksmExtractionService, ISettingsService settingsService, ILocService locService, IDispatcherWrapper dispatcherWrapper) { _navigationService = navigationService; _vksmExtractionService = vksmExtractionService; _settingsService = settingsService; _locService = locService; _dispatcherWrapper = dispatcherWrapper; }
public PeopleService() { _dispatcherWrapper = WindowWrapper.Current().Dispatcher; var handler = new HttpClientHandler(); if (handler.SupportsAutomaticDecompression) { handler.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; } _httpClient = new HttpClient(handler); }
public void Attach(DependencyObject associatedObject) { AssociatedObject = associatedObject; if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) { element.Visibility = Visibility.Visible; } else { _Dispatcher = Common.DispatcherWrapper.Current(); element.Click += Element_Click; Calculate(true); } }
public static void ShowSimpleToast(IDispatcherWrapper fragment, String text) { if (text == null) { return; } // TODO: //Toast toast = Toast.makeText(baseFragment.getParentActivity(), text, Toast.LENGTH_LONG); //toast.show(); //return toast; ShowSimpleAlert(text); }
public void Attach(DependencyObject associatedObject) { AssociatedObject = associatedObject; if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) { element.Visibility = Visibility.Visible; } else { _dispatcher = Common.DispatcherWrapper.Current(); element.Click += Element_Click; Calculate(true); } }
public static async void ShowSimpleAlert(IDispatcherWrapper fragment, String text) { if (text == null) { return; } var dialog = new TLMessageDialog(); dialog.Title = Strings.Resources.AppName; dialog.Message = text; dialog.PrimaryButtonText = Strings.Resources.OK; await dialog.ShowQueuedAsync(); }
public CanvasViewModel( ILogger logger, IScenePersistenceService scenePersistenceService, IPerformanceProfiler performanceProfiler, IScene2D scene, IBitmapSource bitmapSource, IDispatcherWrapper dispatcherWrapper) { _logger = logger; _scenePersistenceService = scenePersistenceService; _performanceProfiler = performanceProfiler; _scene = scene; _bitmapSource = bitmapSource; _dispatcherWrapper = dispatcherWrapper; }
/// <summary> /// Fires a notification that the collection has been reset and should be queried for the changes. /// </summary> /// <param name="notify">The dispatcher wrapper to used for thread access.</param> public async void Reset(IDispatcherWrapper notify = null) { if (_suppressNotification > 0) { return; } if (notify == null) { OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); return; } await notify.DispatchAsync(() => { OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); }); }
public VKSaverNavigationService( INavigationService prismNavigationService, IVKLoginService vkLoginService, IMetricaService metricaService, IDispatcherWrapper dispatcherWrapper, IServiceResolver serviceResolver) { _prismNavigationService = prismNavigationService; _metricaService = metricaService; _dispatcherWrapper = dispatcherWrapper; _serviceResolver = serviceResolver; vkLoginService.UserLogin += vkLoginService_UserLogin; vkLoginService.UserLogout += vkLoginService_UserLogout; #if WINDOWS_PHONE_APP HardwareButtons.BackPressed += HardwareButtons_BackPressed; #endif }
private static async Task <T> ShowAsync <T>(Func <Task <T> > show, IDispatcherWrapper dispatcher) { lock (DialogState) { while (DialogState.Showing) { Monitor.Wait(DialogState); } DialogState.Showing = true; } dispatcher = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher)); var result = await dispatcher.DispatchAsync(async() => await show()); lock (DialogState) { DialogState.Showing = false; Monitor.PulseAll(DialogState); } return(result); }
private static async Task <T> ShowAsync <T>(Func <Task <T> > show, IDispatcherWrapper dispatcher) { lock (DialogState) { while (DialogState.Showing) { Monitor.Wait(DialogState); } DialogState.Showing = true; } dispatcher = dispatcher ?? Locator.WindowWrapper.Current().Dispatcher; var result = await dispatcher.DispatchAsync(async() => await show()); lock (DialogState) { DialogState.Showing = false; Monitor.PulseAll(DialogState); } return(result); }