Beispiel #1
0
        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; }
        }