예제 #1
0
        public async Task <IActionResult> Register(UserRegistrationRequest request)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(new AuthFailedResponse
                    {
                        Status = "false",
                        Errors = ModelState.Values.SelectMany(x => x.Errors.Select(xx => xx.ErrorMessage))
                    }));
                }
                var authResponse = await _identityService.RegisterAsync(request.Email, request.Password);

                if (!authResponse.Success)
                {
                    return(Ok(new AuthFailedResponse
                    {
                        Status = "false",
                        Errors = authResponse.Errors
                    }));
                }
                return(Ok(new AuthSuccessResponse
                {
                    Status = "true",
                    Token = authResponse.Token,
                    Username = authResponse.Username,
                    Created = new JavaScriptSerializer().Serialize(authResponse.Created),
                    Expiry = new JavaScriptSerializer().Serialize(authResponse.Expiry)
                }));
            }
            catch (Exception ex)
            {
                return(BadRequest(new AuthFailedResponse
                {
                    Status = "true",
                    Errors = CommonUtility.CreateEnumerable(ex.Message)
                }));
            }
        }