public async Task NavigateToSnippetsAsync() { if (_isBusy) { return; } try { _isBusy = true; var refreshTask = _allSnippetsViewModel.RefreshSnippetsAsync(); await _navigationService.NavigateForward(_allSnippetsViewModel); await refreshTask; } catch (Exception ex) { await _errorService.ShowAlert("Could not load...", ex); } finally { _isBusy = false; } }
protected override async Task ApplyProfile(ProfileBase profile) { if (_subscriber != null) { await _subscriber.DisposeAsync(); _subscriber = null; } if (profile is RestProfile restProfile) { _profile = restProfile; var requestClient = CreateRequestClient(); var tokenProvider = new TokenProvider(CreateRequestClient, _profile.ServerUser, _profile.ServerPassword); var token = await tokenProvider.GetToken(); var serverUri = new Uri(_profile.ServerName); var signalRUri = new Uri(serverUri, "/cosei"); var subscriber = new SignalRSubscriber(signalRUri.AbsoluteUri, options => { options.Headers.Add("Authorization", $"Bearer {token}"); }, exception => { _dispatcher.BeginInvokeOnMainThread(async() => await _errorService.ShowAlert(exception)); }); var snippetStore = new SnippetStore(requestClient, tokenProvider); var csScriptRunService = new CsScriptRunService(_clipboardService); SnippetService = new SnippetService(snippetStore, _messenger, csScriptRunService, _dispatcher, subscriber, _profile.ServerUser); var userStore = new UserStore(requestClient, tokenProvider); UserService = new UserService(userStore, _messenger, _dispatcher, subscriber); await subscriber.StartAsync(); _subscriber = subscriber; } }
protected override async Task ApplyProfile(ProfileBase profile) { if (_subscriber != null) { await _subscriber.DisposeAsync(); _subscriber = null; } if (profile is RmqProfile rmqProfile) { _profile = rmqProfile; var requestClient = CreateRequestClient(); var tokenProvider = new TokenProvider(CreateRequestClient, _profile.ServerUser, _profile.ServerPassword); var subscriber = new RabbitMqSubscriber( _profile.RabbitMqHost, _profile.RabbitMqVirtualHost, _profile.RabbitMqUser, _profile.RabbitMqPassword, exception => { _dispatcher.BeginInvokeOnMainThread(async() => await _errorService.ShowAlert(exception)); }); var snippetStore = new SnippetStore(requestClient, tokenProvider); var csScriptRunService = new CsScriptRunService(_clipboardService); SnippetService = new SnippetService(snippetStore, _messenger, csScriptRunService, _dispatcher, subscriber, _profile.ServerUser); var userStore = new UserStore(requestClient, tokenProvider); UserService = new UserService(userStore, _messenger, _dispatcher, subscriber); await subscriber.StartAsync(); _subscriber = subscriber; } }