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));
        }
Example #3
0
 private async Task Catch(Exception e, string message)
 {
     IsBusy = false;
     await SnackbarViewModel.Enqueue(message);
 }