public TyphenApi.WebApiRequest <TyphenApi.Type.Submarine.SignUpObject, TyphenApi.Type.Submarine.Error> SignUp(string name) { var requestBody = new SignUpRequestBody(); requestBody.Name = name; var request = new TyphenApi.WebApiRequest <TyphenApi.Type.Submarine.SignUpObject, TyphenApi.Type.Submarine.Error>(this); request.Uri = new Uri(BaseUri, "sign_up"); request.Method = HttpMethod.Post; request.Body = requestBody; request.NoAuthenticationRequired = true; return(request); }
public async Task <ActionResult> SignUp([FromBody] SignUpRequestBody requestBody) { if (!ModelState.IsValid) { return(BadRequest(new { errors = new { global = "Request Body is invalid" } })); } var isEmailTaken = await this.userManager.FindByEmailAsync(requestBody.Email); if (isEmailTaken != null) { return(BadRequest(new { errors = new { global = "This E-mail is already taken" } })); } if (String.IsNullOrWhiteSpace(requestBody.UserName)) { requestBody.UserName = requestBody.Email; } var applicationUser = new ApplicationUser { UserName = requestBody.UserName, Email = requestBody.Email }; try { var result = await this.userManager.CreateAsync(applicationUser, requestBody.Password); if (result.Succeeded) { return(Ok(new { email = requestBody.Email })); } else { var error = result.Errors.ToList().First(); var code = error.Code; var desc = error.Description; return(BadRequest(new { errors = new { global = code + ": " + desc } })); } } catch (Exception ex) { throw ex; } }