public async Task <RoomViewModel?> JoinRoomAsync() { if (string.IsNullOrWhiteSpace(AccessCode)) { await SnackbarViewModel.Enqueue("Uzupełnij kod dostępu."); return(null); } IsBusy = true; var response = await _roomsService.JoinRoomAsync(AccessCode !); IsBusy = false; if (response.IsSuccesfull is false) { await SnackbarViewModel.Enqueue("Nie można dołaczyć do pokoju ponieważ już się rozpoczął lub nie istnieje."); return(null); } SnackbarViewModel.Disposed = true; return(new RoomViewModel( isAdmin: false, response.Value !, _roomsService)); }
public async Task <RoomViewModel?> CreateRoomAsync() { if (SelectedEvent is null) { await SnackbarViewModel.Enqueue("Wybierz event."); return(null); } if (string.IsNullOrEmpty(ScramblesAmount)) { await SnackbarViewModel.Enqueue("Uzupełnij liczbę scrambli."); return(null); } var scramblesAmountParsed = int.TryParse(ScramblesAmount, out var scramblesAmount) && 3 <= scramblesAmount && scramblesAmount <= 20; if (scramblesAmountParsed is false) { await SnackbarViewModel.Enqueue("Liczba scrambli musi być w przedziale [3, 20]."); return(null); } IsBusy = true; var response = await _roomsService.CreateRoomAsync(SelectedEvent !, scramblesAmount); IsBusy = false; if (response.IsSuccesfull is false) { await SnackbarViewModel.Enqueue("Podczas można utworzyć pokoju. Podczas łączenia z serwerem wystąpił problem."); return(null); } SnackbarViewModel.Disposed = true; return(new RoomViewModel( isAdmin: true, response.Value !, _roomsService)); }
private async Task Catch(Exception e, string message) { IsBusy = false; await SnackbarViewModel.Enqueue(message); }