//public async Task<RegisterResponseModel> Register(RegisterRequestModel model) //{ // model.Email = model.Email.Trim().ToLower(); // // ApplicationUser user = _unitOfWork.Repository<ApplicationUser>().Find(x => x.Email.ToLower() == model.Email); // // if (user != null && user.EmailConfirmed) // throw new CustomException(HttpStatusCode.UnprocessableEntity, "email", "Email is already registered"); // // if (user == null) // { // user = new ApplicationUser // { // Email = model.Email, // UserName = model.Email, // IsActive = true, // RegistratedAt = DateTime.UtcNow, // }; // // var result = await _userManager.CreateAsync(user, model.Password); // // if (!result.Succeeded) // throw new CustomException(HttpStatusCode.BadRequest, "general", result.Errors.FirstOrDefault().Description); // // result = await _userManager.AddToRoleAsync(user, Role.User); // // if (!result.Succeeded) // throw new CustomException(HttpStatusCode.BadRequest, "general", result.Errors.FirstOrDefault().Description); // } // // try // { // await SendConfirmEmailLink(user); // } // catch (Exception ex) // { // await _userManager.DeleteAsync(user); // throw; // } // // return new RegisterResponseModel { Email = user.Email }; //} public async Task <RegisterUsingPhoneResponseModel> RegisterUsingPhone(RegisterUsingPhoneRequestModel model) { if (_unitOfWork.Repository <ApplicationUser>().Find(x => x.PhoneNumberConfirmed && x.PhoneNumber == model.PhoneNumber) != null) { throw new CustomException(HttpStatusCode.UnprocessableEntity, "phone", "Phone is already registered"); } bool smsSent = false; try { var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(model.Password); var password = Convert.ToBase64String(plainTextBytes); var data = JsonConvert.SerializeObject(new RegisterWithPhoneInternalModel { Phone = model.PhoneNumber, Password = password }, new JsonSerializerSettings { Formatting = Formatting.Indented }); smsSent = await _smsService.SendVerificationCodeAsync(model.PhoneNumber, VerificationCodeType.Confirm, data); } catch (SystemException ex) { throw new CustomException(HttpStatusCode.BadRequest, "general", "Error while sending message"); } return(new RegisterUsingPhoneResponseModel { Phone = model.PhoneNumber, SMSSent = smsSent }); }
public async Task <IActionResult> Register([FromBody] RegisterUsingPhoneRequestModel model) { var response = await _bridgeAbstractionUserPhone(BridgeType.UserPhone).Register(model); // use bridge return(Json(new JsonResponse <BridgeRegisterResponseModel>(response))); }