public async Task <OperationResult <bool> > Handle(UpdateUserCommand request, CancellationToken cancellationToken) { string fileName = null; var getUser = await unitOfWork.UsersRepository.GetUserByIdAsync(request.Id, cancellationToken); if (getUser.Result != null) { if (request.Photo != null) { var uploadFile = await UploadUtiltie.UploadInCustomePath(request.Photo, ".png", request.Username, UploadFolderPath.PathUserUploadFolder(), UploadFolderPath.PathAvatarUserUploadFolder()); fileName = uploadFile.Result; } getUser.Result.UpdateProperties(request.Username, request.Name, request.Family, request.Email, fileName); var addUser = unitOfWork.UsersRepository.Update(getUser.Result, cancellationToken); if (addUser.Success) { try { unitOfWork.CommitSaveChange(); return(OperationResult <bool> .BuildSuccessResult(true)); } catch (Exception ex) { return(OperationResult <bool> .BuildFailure(ex.Message)); } } } return(OperationResult <bool> .BuildFailure(getUser.ErrorMessage)); }
public async Task <OperationResult <string> > Handle(VerificationCommand request, CancellationToken cancellationToken) { var verification = await unitOfWork.UsersRepository.ActivationCodeRepository.FindByHashCodeAndCodeAsync(request.HashCode, request.Code, cancellationToken); if (verification.Result != null) { if (verification.Result.DateExpire >= DateTimeOffset.UtcNow) { var findUSer = await unitOfWork.UsersRepository.GetUserByIdAsync(verification.Result.UserId, cancellationToken); if (findUSer.Result != null) { switch (verification.Result.CodeType.CodeTypes) { case CodeTypes.EmailConfirmed: findUSer.Result.ConfirmedEmail(); findUSer.Result.UserChangeActiveStatus(false); break; case CodeTypes.ForgetPassword: break; case CodeTypes.PhoneConfirmed: findUSer.Result.ConfirmedPhoneNumber(); break; case CodeTypes.RegisterCode: findUSer.Result.UserChangeActiveStatus(false); break; } var reomve = unitOfWork.UsersRepository.ActivationCodeRepository.Remove(verification.Result); if (reomve.Success) { unitOfWork.CommitSaveChange(); return(OperationResult <string> .BuildSuccessResult("Verification Success")); } return(OperationResult <string> .BuildFailure(reomve.ErrorMessage)); } return(OperationResult <string> .BuildFailure(findUSer.ErrorMessage)); } return(OperationResult <string> .BuildFailure("Exiperation Time of Code")); } return(OperationResult <string> .BuildFailure("Code not Found")); }
public async Task <OperationResult <string> > Handle(LoginCommand request, CancellationToken cancellationToken) { var findUSer = await unitOfWork.UsersRepository.GetUserByUsernameAsync(request.Username, cancellationToken); if (findUSer.Result != null) { if (Utility.VerifyHashedPassword(findUSer.Result.Password, request.Password)) { var validate = new CheckIsActive(new CheckPhoneConfirmed(new CheckIsLockedAccount(null))); var validateUserContext = validate.ValidateUserLogin(new UserContext { Context = findUSer.Result, Message = null }); if (validateUserContext.Message == null) { var findUserInfo = await unitOfWork.UsersRepository.GetUserTokenInfo(findUSer.Result.Id); var token = await tokenService.GenerateToken(findUserInfo.Result); return(OperationResult <string> .BuildSuccessResult(token)); } return(OperationResult <string> .BuildFailure(validateUserContext.Message)); } else { findUSer.Result.AccountFailed(); try { unitOfWork.CommitSaveChange(); } catch (System.Exception ex) { return(OperationResult <string> .BuildFailure(ex.Message)); } return(OperationResult <string> .BuildFailure("Username or Password not matched")); } } return(OperationResult <string> .BuildFailure("not Found User")); }
public async Task <OperationResult <string> > Handle(DeleteCategoryCommand request, CancellationToken cancellationToken) { try { var getCategory = await unitOfWork.CategoryRepository.GetCategoryByIdAsync(request.Id, cancellationToken); if (getCategory.Result != null) { getCategory.Result.Delete(); var updateCategory = unitOfWork.CategoryRepository.UpdateCategory(getCategory.Result, cancellationToken); if (updateCategory.Success) { unitOfWork.CommitSaveChange(); return(OperationResult <string> .BuildSuccessResult(updateCategory.Result)); } } return(OperationResult <string> .BuildFailure(getCategory.ErrorMessage)); } catch (Exception ex) { return(OperationResult <string> .BuildFailure(ex.Message)); } }