public ActionResult RegisterAPI(RegisterDto registerRequest)
        {
            registerRequest = SanitizeRegisterDto.Sanitize(registerRequest);
            if (registerRequest.Errored)
            {
                return(BadRequest(registerRequest.ErrorMessages));
            }
            //Register in service
            var RegistrationService = new Signup();

            RegistrationService.SignupAccountAndUser(registerRequest);
            if (RegistrationService.Errored)
            {
                return(BadRequest(RegistrationService.ErrorMessages));
            }

            //Authenticate and retrieve token
            var authenticator = new Authenticater();

            authenticator.AuthenticateSignin(registerRequest.Password, registerRequest.Email);
            if (authenticator.Errored)
            {
                return(BadRequest(authenticator.ErrorMessages));
            }

            return(Ok(authenticator.Token));
        }
        public ActionResult SigninAPI(SigninDto signinRequest)
        {
            signinRequest = SanitizeSigninDto.Sanitize(signinRequest);
            if (signinRequest.Errored)
            {
                return(BadRequest(signinRequest.ErrorMessages));
            }
            //Authenticate and retrieve token
            var authenticator = new Authenticater();

            authenticator.AuthenticateSignin(signinRequest.Password, signinRequest.Email);
            if (authenticator.Errored)
            {
                return(BadRequest(authenticator.ErrorMessages));
            }
            return(Ok(authenticator.Token));
        }
        public User Post([FromBody] Authenticater user)
        {
            try
            {
                Console.WriteLine(user);
                User newUser = new User();
                var  res     = userRepository.GetIdentity(user.email);

                if (res != null)
                {
                    MD5            md5hash  = MD5.Create();
                    byte[]         data     = md5hash.ComputeHash(Encoding.UTF8.GetBytes(user.password));
                    StringBuilder  sBuilder = new StringBuilder();
                    StringComparer comparer = StringComparer.OrdinalIgnoreCase;

                    for (int i = 0; i < data.Length; i++)
                    {
                        sBuilder.Append(data[i].ToString("x2"));
                    }

                    if (0 == comparer.Compare(res.password, sBuilder.ToString()))
                    {
                        return(res);
                    }
                    else
                    {
                        return(newUser);
                    }
                }
                else
                {
                    return(newUser);
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message + e.StackTrace);
                throw;
            }
        }