Exemple #1
0
        //public async Task<IResponseModel> RegisterClientAsync(ClientModel model)
        //{
        //    try
        //    {
        //        var client = new Client
        //        {
        //            Id = Guid.NewGuid(),
        //            Email = model.Email,
        //            ApiKey = Guid.NewGuid()
        //        };

        //        _db.Clients.Add(client);
        //        await _db.SaveChangesAsync();

        //        _response.Status = true;
        //        _response.Message = "Client registration successful.";

        //        return _response;
        //    }
        //    catch (Exception ex)
        //    {
        //        _response.Status = false;
        //        _response.Message = "Client registration error.";

        //        return _response;
        //    }
        //}

        //public async Task<ClientModel> VerifyClientAsync(ClientModel model)
        //{
        //    try
        //    {
        //        var clientInfo = await _db.Clients.Where(u => u.Email == model.Email && u.ApiKey == model.ApiKey).SingleOrDefaultAsync();

        //        if (clientInfo == null) return null;

        //        return new ClientModel
        //        {
        //            Email = clientInfo.Email,
        //            ClientId = clientInfo.Id
        //        };
        //    }
        //    catch (Exception ex)
        //    {
        //        throw;
        //    }
        //}

        //public TokenModel GenerateJwt(ClientModel model)
        //{
        //    var token = new JwtTokenBuilder(_config);

        //    return new TokenModel
        //    {
        //        AccessToken = token.GenerateToken(),
        //        Email = model.Email
        //    };
        //}
        #endregion

        #region User Authentication
        public async Task <IResponseModel> RegisterUserAsync(IUserModel model)
        {
            try
            {
                var salt         = PasswordHash.GenerateSalt();
                var passwordHash = PasswordHash.ComputeHash(model.Password, salt);

                var user = new User
                {
                    Id = Guid.NewGuid(),
                    //ClientId = ClientAppHelper.ClientApp,
                    Username = model.Username,
                    Password = Convert.ToBase64String(passwordHash),
                    Salt     = Convert.ToBase64String(salt)
                };

                _db.Users.Add(user);
                await _db.SaveChangesAsync();

                _response.Status  = true;
                _response.Message = "User registration successful.";

                return(_response);
            }
            catch (Exception ex)
            {
                _response.Status  = false;
                _response.Message = "User registration error.";

                return(_response);
            }
        }
        public async Task AccountService_RegisterUserAsync_Test()
        {
            try
            {
                using (db = new DatabaseContext(dbBuilder.Options))
                {
                    var userModel = new UserModel
                    {
                        Username  = null,
                        Password  = "******",
                        FirstName = "Test",
                        LastName  = "Test"
                    };

                    var salt         = PasswordHash.GenerateSalt();
                    var passwordHash = PasswordHash.ComputeHash(userModel.Password, salt);

                    var user = new ApplicationUser
                    {
                        Id             = Guid.NewGuid(),
                        ClientId       = config["AppConfiguration:Audience"],
                        Email          = userModel.Username,
                        Password       = Convert.ToBase64String(passwordHash),
                        FirstName      = userModel.FirstName,
                        LastName       = userModel.LastName,
                        EmailConfirmed = false,
                        DateRegistered = DateTime.UtcNow,
                        Salt           = Convert.ToBase64String(salt)
                    };

                    db.Users.Add(user);
                    var result = await db.SaveChangesAsync();

                    Assert.IsTrue(result == 1);
                }
            }
            catch (Exception ex)
            {
                logService.Log("Register User", ex.InnerException.Message, ex.Message, ex.StackTrace);
                Assert.Fail(ex.Message);
            }
        }
Exemple #3
0
        public async Task <IResponseModel> RegisterUserAsync(IUserModel model)
        {
            try
            {
                var salt         = PasswordHash.GenerateSalt();
                var passwordHash = PasswordHash.ComputeHash(model.Password, salt);

                var user = new ApplicationUser
                {
                    Id             = Guid.NewGuid(),
                    ClientId       = _config["AppConfiguration:Audience"],
                    Email          = model.Username,
                    Password       = Convert.ToBase64String(passwordHash),
                    FirstName      = model.FirstName,
                    LastName       = model.LastName,
                    EmailConfirmed = false,
                    DateRegistered = DateTime.UtcNow,
                    Salt           = Convert.ToBase64String(salt)
                };

                _db.Users.Add(user);
                await _db.SaveChangesAsync();

                _response.Status  = true;
                _response.Message = "Registration Successful.";

                return(_response);
            }
            catch (Exception ex)
            {
                _loggerService.Log("Register User", ex.InnerException.Message, ex.Message, ex.StackTrace);

                _response.Status  = false;
                _response.Message = "Registration Error.";

                return(_response);
            }
        }