コード例 #1
0
        async void SignUp()
        {
            if (!ValidatePasswordMatch())
            {
                await Application.Current.MainPage.DisplayAlert("Aviso", "Verifica que la contraseña sea la misma.", "Aceptar");
            }
            else
            {
                if (!ValidateInformation())
                {
                    await Application.Current.MainPage.DisplayAlert("Aviso", "Verifica que todos los campos se encuentren completos.", "Aceptar");
                }
                else if (!IsBusy)
                {
                    await Application.Current.MainPage.DisplayAlert("Aviso", "Importante: dado que no recopilamos información como el correo electrónico no podemos ayudarte restablecer tu contraseña en caso de extravío, por lo que es importante que guardes bien tu nombre de usuario y contraseña, anótalos en un lugar seguro ya que los necesitarás cada que desees iniciar sesión desde un dispositivo móvil.", "Aceptar");

                    IsBusy = true;
                    SignUpAccountRequest model = new SignUpAccountRequest()
                    {
                        username = Username, password = Password
                    };
                    Application.Current.MainPage = new LegalConcernsPage(model);
                    IsBusy = false;
                }
            }
        }
コード例 #2
0
        public async Task <ApiSimpleResponse <AccountModel> > SignUp(SignUpAccountRequest request)
        {
            var command  = Mapper.Map <SignUpAccountCommand>(request);
            var response = await Mediator.Send(command);

            return(Mapper.Map <ApiSimpleResponse <AccountModel> >(response));
        }
コード例 #3
0
        public async Task SignUp([FromBody] SignUpAccountRequest request)
        {
            var authenticatedUser = await _accountService.CreateUserAsync(request);

            await _signInManager.SignInAsync(
                authenticatedUser,
                isPersistent : false);
        }
コード例 #4
0
 public LegalConcernsViewModel(INavigation navigation, SignUpAccountRequest model)
 {
     this.navigation = navigation;
     this.model      = model;
     InitializeViewModel();
     IsVisibleAccept = true;
     IsVisibleCancel = true;
 }
コード例 #5
0
        public LegalConcernsPage(SignUpAccountRequest model)
        {
            InitializeComponent();

            Xamarin.Forms.NavigationPage.SetHasNavigationBar(this, false);
            On <Xamarin.Forms.PlatformConfiguration.iOS>().SetUseSafeArea(true);

            BindingContext = new LegalConcernsViewModel(this.Navigation, model);
        }
コード例 #6
0
        public static async Task <SignUpAccountResponse> SignUpAccountAsync(SignUpAccountRequest model)
        {
            int IterationsToRetry        = 5;
            int TimeToSleepForRetry      = 3000;
            SignUpAccountResponse result = new SignUpAccountResponse();

            if (Helpers.ConnectivyHelper.CheckConnectivity() != Enums.ConnectivtyResultEnum.HasConnectivity)
            {
                result.Status  = Enums.ResponseStatus.CommunicationError;
                result.Message = "El dispositivo no pudo comunicarse con el servidor, comprueba que tengas conexión a internet";
                return(result);
            }

            model.token = GetToken();

            for (int i = 0; i <= IterationsToRetry; i++)
            {
                try
                {
                    using (var client = new HttpClient())
                    {
                        var service = $"{Settings.FunctionURL}/api/SignUpAccount/";

                        byte[] byteData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(model));
                        using (var content = new ByteArrayContent(byteData))
                        {
                            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                            var httpResponse = await client.PostAsync(service, content);

                            result = JsonConvert.DeserializeObject <SignUpAccountResponse>(await httpResponse.Content.ReadAsStringAsync());

                            if (httpResponse.StatusCode == HttpStatusCode.OK)
                            {
                                result.Status = Enums.ResponseStatus.Ok;
                            }
                            else
                            {
                                result.Status = Enums.ResponseStatus.Error;
                            }
                            return(result);
                        }
                    }
                }
                catch (Exception)
                {
                    result.Status  = Enums.ResponseStatus.CommunicationError;
                    result.Message = "Ocurrió un error durante el proceso, por favor intenta de nuevo o espera unos minutos antes de vovler a intentar";
                    Thread.Sleep(TimeToSleepForRetry);
                    continue;
                }
            }
            return(result);
        }
コード例 #7
0
 public SignUpConfirmationViewModel(INavigation navigation, SignUpAccountRequest model)
 {
     this.navigation = navigation;
     this.model      = model;
     InitializeViewModel();
 }
コード例 #8
0
 public SignUpConfirmationPage(SignUpAccountRequest model)
 {
     InitializeComponent();
     BindingContext = new SignUpConfirmationViewModel(this.Navigation, model);
 }