public async Task <IActionResult> SignUp([FromBody] SignUpRequestModel requestModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            SignUpResponseModel responseModel = await _accountService.SignUpAsync(requestModel);

            if (responseModel.IdentityResult.Succeeded)
            {
                string callbackUrl = CreateCallbackUrl("ConfirmEmail", new { userId = responseModel.Id, code = responseModel.SignUpToken, redirectUrl = requestModel.RedirectUrl });
                await _emailHelper.SendEmailAsync(requestModel.Email, "Confirm your account", $"Please confirm your registration using the link: <a title='Confirmation' href='{callbackUrl}'>link</a>");
            }

            if (!responseModel.IdentityResult.Succeeded)
            {
                foreach (IdentityError error in responseModel.IdentityResult.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
                return(BadRequest(ModelState));
            }

            return(Ok());
        }
예제 #2
0
        public async Task <ActionResult <long> > SignUp(UserDto userDto)
        {
            SignUpResponseModel signUpResponseModel = new SignUpResponseModel();


            if (userDto != null)
            {
                //User Already Exists
                UserResponseModel userResponseModel = _userRepository.GetUserByUserEmail(userDto.Email);
                if (userResponseModel != null && userResponseModel.Data != null && userResponseModel.Data.Count > 0)
                {
                    signUpResponseModel.StatusCode = 409;
                    signUpResponseModel.Message    = "User Already Exists!";
                    signUpResponseModel.UserID     = 0;
                    signUpResponseModel.ClassCode  = "0";
                }
                else
                {
                    DataTable userDataTable           = TranslateUserDtoToDataTable(userDto);
                    DataTable userEducationDataTable  = TranslateUserEducationDtoToDataTable(userDto.userEducation);
                    DataTable userExperienceDataTable = TranslateUserExperienceDtoToDataTable(userDto.userExperience);
                    DataTable userGuardianDataTable   = TranslateUserGuardianDtoToDataTable(userDto.userGuardian);
                    signUpResponseModel = _userRepository.SignUp(userDataTable, userEducationDataTable, userExperienceDataTable, userGuardianDataTable);
                }
            }
            signUpResponseModel.ClassCode = "0";
            return(Ok(signUpResponseModel));
        }
        public async Task <SignUpResponseModel> SignUpAsync(SignUpRequestModel requestModel)
        {
            ApplicationUser     user          = requestModel.MapToEntity(new ApplicationUser());
            SignUpResponseModel responseModel = new SignUpResponseModel();

            responseModel.IdentityResult = await _userManager.CreateAsync(user, requestModel.Password);

            if (responseModel.IdentityResult.Succeeded)
            {
                responseModel.Id          = user.Id;
                responseModel.SignUpToken = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                return(responseModel);
            }

            return(responseModel);
        }
예제 #4
0
        public static async Task <Tuple <SignUpResponseModel, ErrorModel> > ForgotPassword(PasswordReset UserDetail)
        {
            using (HttpClientHelper client = new HttpClientHelper())
            {
                var        passengerObj = new SignUpResponseModel();
                ErrorModel errorModel   = null;

                await client.ProcessClientRequestAsync <SignUpResponseModel>(GigUrl.GigmsForgotPassword, HttpMethod.Post, UserDetail,
                                                                             success =>
                {
                    passengerObj = success;
                },
                                                                             error =>
                {
                    errorModel = error;
                }
                                                                             );

                return(new Tuple <SignUpResponseModel, ErrorModel>(passengerObj, errorModel));
            }
        }
예제 #5
0
        public SignUpResponseModel SignUp(DataTable userDataTable, DataTable userEducationDataTable, DataTable userExperienceDataTable, DataTable userGuardianDataTable)
        {
            SignUpResponseModel signUpResponseModel = new SignUpResponseModel();
            DataTable           dataTable           = new DataTable();

            SqlConnection conn = new SqlConnection(DbHelper.DbConnectionString);

            try
            {
                SqlCommand command = new SqlCommand(@"dbo.uspSignUpSaveUser", conn);
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.AddWithValue("@UserSigupUDT", userDataTable);
                command.Parameters.AddWithValue("@UserExperienceUDT", userExperienceDataTable);
                command.Parameters.AddWithValue("@UserEducationUDT", userEducationDataTable);
                command.Parameters.AddWithValue("@UserGuardianUDT", userGuardianDataTable);

                SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
                dataAdapter.Fill(dataTable);
                foreach (DataRow row in dataTable.Rows)
                {
                    signUpResponseModel.UserID    = row["UserID"] != DBNull.Value ? Convert.ToInt64(row["UserID"].ToString()) : 0;
                    signUpResponseModel.ClassCode = row["ClassCode"] != DBNull.Value ? Convert.ToString(row["ClassCode"]) : string.Empty;
                }

                signUpResponseModel.Message    = "Created";
                signUpResponseModel.StatusCode = 201;
            }
            catch (Exception ex)
            {
                signUpResponseModel.UserID     = 0;
                signUpResponseModel.ClassCode  = "0";
                signUpResponseModel.Message    = "Internal Server Error";
                signUpResponseModel.StatusCode = 500;
            }
            finally
            {
                conn.Close();
            }
            return(signUpResponseModel);
        }
예제 #6
0
        public async Task <string> SignUpAsync(TraineeSignupModel signupModel)
        {
            Debug.WriteLine(JsonConvert.SerializeObject(signupModel));

            if (CrossConnectivity.Current.IsConnected)
            {
                var uri = new Uri("https://arkho-app.org:6443/FitnessApp/manageservices/v1/members/signup");

                try
                {
                    var json    = JsonConvert.SerializeObject(signupModel);
                    var content = new StringContent(json, Encoding.UTF8, "application/json");

                    HttpResponseMessage response = null;

                    response = await client.PostAsync(uri, content);


                    if (response.IsSuccessStatusCode)
                    {
                        var responseJson = response.Content.ReadAsStringAsync().Result;
                        SignUpResponseModel responseItem = JsonConvert.DeserializeObject <Models.SignUpResponseModel>(responseJson);

                        if (responseItem.status.status == "SUCCESS" || responseItem.status.status == "Success")
                        {
                            if (signupModel.profile == "Trainer" && responseItem.status.IsStripeAccountCreated == "false")
                            {
                                App.TrainerStripeUrl = responseItem.status.StripeRedirectUrl;
                            }

                            LoginRequestModel loginRequestModel = new LoginRequestModel(App.SelectedView, signupModel.email, App.SelectedView, signupModel.password);
                            var message = await App.TodoManager.Login(loginRequestModel);

                            if (message == "SUCCESS" || message == "Success")
                            {
                                return("Success");
                            }
                            else
                            {
                                return("Internal Server Error. Please try again.");
                            }
                        }
                        else
                        {
                            return("Internal Server Error. Please try again.");
                        }
                    }
                    else
                    {
                        return("Internal Server Error. Please try again.");
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(@"ERROR {0}", ex.Message);
                    return("Internal Server Error. Please try again.");
                }
            }
            else
            {
                return("Internet Connectivity error. Please try again.");
            }
        }