/// <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;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Waliduje nazwę użytkownika.
        /// </summary>
        /// <param name="context">Kontekst bazy danych</param>
        /// <param name="model">Model z danymi.</param>
        /// <returns>String z ewentualną przyczyną niepowodzenia.</returns>
        public async Task <string> ValidateUserAsync(IAccommodationContext context, RegisterViewModel model)
        {
            string errorMessage;
            bool   b = await _validator.ValidateUsernameAsync(context, model.Username);

            if (!b)
            {
                return("Nazwa użytkownika musi być unikalna. Proszę wybrać unikalną nazwę.");
            }
            return(!ValidateUserData(model, out errorMessage) ? errorMessage : string.Empty);
        }