/// <summary>
        /// Asynchronicznie przechodzi do następnego ekranu
        /// </summary>
        /// <param name="x">Parametr komendy</param>
        /// <returns></returns>
        public async Task NextScreenAsync(object x)
        {
            Error = null;
            switch (CurrentScreen)
            {
            case CurrentScreen.Credentials:
                PasswordBox[] passwords = x as PasswordBox[];
                if (passwords == null || passwords.Length != 2)
                {
                    throw new ArgumentException();
                }
                string err;
                if (string.IsNullOrEmpty(Username))
                {
                    Error = "Podaj nazwę użytkownika";
                    return;
                }
                bool b = await _validator.ValidateUsernameAsync <AccommodationContext>(Username);

                if (!b)
                {
                    Error = "Nazwa użytkownika jest już zajęta";
                    return;
                }
                if (!_validator.ValidateEmail(Email, out err) ||
                    !_validator.ValidatePassword(passwords[0].Password, out err) ||
                    !_validator.ValidatePasswordConfirmation(passwords[0].Password, passwords[1].Password, out err))
                {
                    Error = err;
                    return;
                }
                _user = await _service.GetNewUserAsync(Username, passwords[0].Password);

                _userData = new UserData()
                {
                    Email = Email
                };
                CurrentScreen = CurrentScreen.BasicData;
                break;

            case CurrentScreen.BasicData:
                if (!_validator.ValidateName(FirstName))
                {
                    Error = "Należy podać imię";
                    return;
                }
                if (!_validator.ValidateName(LastName))
                {
                    Error = "Należy podać nazwisko";
                    return;
                }
                _userData.FirstName   = FirstName;
                _userData.LastName    = LastName;
                _userData.CompanyName = CompanyName ?? string.Empty;
                CurrentScreen         = CurrentScreen.Address;
                break;
            }
        }