public async Task <IResult> UpdateAsync(UpdateUserModel updateUserModel) { var validation = new UpdateUserModelValidator().Valid(updateUserModel); if (!validation.Success) { return(new ErrorResult(validation.Message)); } var userEntityDatabase = await UserRepository.SelectAsync(updateUserModel.UserId).ConfigureAwait(false); var userDomain = UserDomainFactory.Create(updateUserModel); userDomain.SetLogin(userEntityDatabase.Login); userDomain.SetPassword(userEntityDatabase.Password); var userEntity = userDomain.Map <UserEntity>(); await UserRepository.UpdateAsync(userEntity, userEntity.UserId).ConfigureAwait(false); await DatabaseUnitOfWork.SaveChangesAsync().ConfigureAwait(false); return(new SuccessResult()); }
public async Task <IDataResult <TokenModel> > SignInAsync(SignInModel signInModel) { var validation = new SignInModelValidator().Valid(signInModel); if (!validation.Success) { return(new ErrorDataResult <TokenModel>(validation.Message)); } var userDomain = UserDomainFactory.Create(signInModel); userDomain.SignIn(); signInModel = userDomain.Map <SignInModel>(); var signedInModel = await UserRepository.SignInAsync(signInModel).ConfigureAwait(false); validation = new SignedInModelValidator().Valid(signedInModel); if (!validation.Success) { return(new ErrorDataResult <TokenModel>(validation.Message)); } await AddUserLogAsync(signedInModel.UserId, LogType.SignIn).ConfigureAwait(false); var tokenModel = CreateJsonWebToken(signedInModel); return(new SuccessDataResult <TokenModel>(tokenModel)); }
public async Task <IResult> UpdateAsync(long userId, UpdateUserModel updateUserModel) { var validation = new UpdateUserModelValidator().Valid(updateUserModel); if (!validation.Success) { return(new ErrorResult(validation.Message)); } var userEntity = await UserRepository.SelectAsync(userId); var nullObjectValidation = new NullObjectValidation <UserEntity>().Valid(userEntity); if (!nullObjectValidation.Success) { return(new ErrorResult(nullObjectValidation.Message)); } var userDomain = UserDomainFactory.Create(userEntity); userDomain.Update(updateUserModel); userEntity = userDomain.Map <UserEntity>(); userEntity.UserId = userId; await UserRepository.UpdateAsync(userEntity, userEntity.UserId); await DatabaseUnitOfWork.SaveChangesAsync(); return(new SuccessResult()); }
public async Task <IDataResult <long> > AddAsync(AddUserModel addUserModel) { var validation = new AddUserModelValidator().Valid(addUserModel); if (!validation.Success) { return(new ErrorDataResult <long>(validation.Message)); } addUserModel.Login = UserDomainService.GenerateHash(addUserModel.Login); addUserModel.Password = UserDomainService.GenerateHash(addUserModel.Password); var userDomain = UserDomainFactory.Create(addUserModel); userDomain.Add(); var userEntity = userDomain.Map <UserEntity>(); await UserRepository.AddAsync(userEntity); await DatabaseUnitOfWork.SaveChangesAsync(); return(new SuccessDataResult <long>(userEntity.UserId)); }
public async Task <IResult> InactivateAsync(long userId) { var userDomain = UserDomainFactory.Create(userId); userDomain.Inactivate(); await UserRepository.UpdatePartialAsync(userDomain.UserId, new { userDomain.Status }); await DatabaseUnitOfWork.SaveChangesAsync(); return(SuccessResult()); }
public async Task <IDataResult <long> > AddAsync(AddUserModel addUserModel) { var validation = new AddUserModelValidator().Valid(addUserModel); if (!validation.Success) { return(new ErrorDataResult <long>(validation.Message)); } var userDomain = UserDomainFactory.Create(addUserModel); userDomain.Add(); var userEntity = userDomain.Map <UserEntity>(); await UserRepository.AddAsync(userEntity).ConfigureAwait(false); await DatabaseUnitOfWork.SaveChangesAsync().ConfigureAwait(false); return(new SuccessDataResult <long>(userEntity.UserId)); }
public async Task <IResult> UpdateAsync(UpdateUserModel updateUserModel) { var validation = new UpdateUserModelValidator().Valid(updateUserModel); if (!validation.Success) { return(ErrorResult(validation.Message)); } var userEntity = await UserRepository.SelectAsync(updateUserModel.UserId); var userDomain = UserDomainFactory.Create(userEntity); userDomain.Update(updateUserModel); userEntity = UserEntityFactory.Create(userDomain); await UserRepository.UpdateAsync(userEntity.UserId, userEntity); await DatabaseUnitOfWork.SaveChangesAsync(); return(SuccessResult()); }