コード例 #1
0
        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));
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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"));
        }
コード例 #4
0
        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));
            }
        }