public async Task <dynamic> Update([FromBody] UserUpdateModel userUpdateModel)
        {
            string      accessToken = Request.Headers[HeaderNames.Authorization];
            string      token       = accessToken.Split("Bearer ")[1];
            UserReadDTO userRead    = TokenUtil.GetSubFromToken(token);

            if (ModelState.IsValid)
            {
                userRead.UserName = userUpdateModel.UserName;
                Services.Entities.CustomResponse updateUserInforTask = await _userService.UpdateUserInfor(userRead);

                if (updateUserInforTask.status)
                {
                    return(new
                    {
                        status = true,
                        code = ReturnCodes.DataUpdateSucceeded,
                        message = updateUserInforTask.message,
                        data = updateUserInforTask.userReadDTO
                    });
                }
            }

            return(new
            {
                status = false,
                code = ReturnCodes.DataUpdateFailed,
                message = "Có Lỗi Xảy Ra Khi Cố Gắng Cập Nhật Dữ Liệu"
            });
        }
        public async Task <dynamic> ChangePassword([FromBody] UserChangePasswordModel userChangePasswordModel)
        {
            string      accessToken = Request.Headers[HeaderNames.Authorization];
            string      token       = accessToken.Split("Bearer ")[1];
            UserReadDTO userRead    = TokenUtil.GetSubFromToken(token);

            if (ModelState.IsValid)
            {
                Services.Entities.CustomResponse UpdatePassword_Task = await _userService.UpdatePassword(userRead.UserID, userChangePasswordModel.OldPassword, userChangePasswordModel.NewPassword);

                return(new
                {
                    status = UpdatePassword_Task.status,
                    code = 200,
                    message = UpdatePassword_Task.message
                });
            }

            return(new
            {
                status = false,
                code = ReturnCodes.DataUpdateFailed,
                message = "Có Lỗi Xảy Ra Khi Cố Gắng Thay Đổi Mật Khẩu"
            });
        }
예제 #3
0
        public async Task <dynamic> Create([FromBody] CommentModel commentModel)
        {
            string      accessToken = Request.Headers[HeaderNames.Authorization];
            string      token       = accessToken.Split("Bearer ")[1];
            UserReadDTO userRead    = TokenUtil.GetSubFromToken(token);

            if (ModelState.IsValid)
            {
                CommentWriteDTO commentWrite = new CommentWriteDTO
                {
                    CommentContent = commentModel.CommentContent,
                    PostID         = commentModel.PostID,
                    UserID         = new Guid(userRead.UserID)
                };

                //Khởi Tạo Task Create Comment
                Services.Entities.CustomResponse CreateComment_Task = await _commentService.Create(commentWrite);

                //Nếu Task Done
                if (CreateComment_Task.status)
                {
                    return(new
                    {
                        status = CreateComment_Task.status,
                        code = ReturnCodes.DataCreateSucceeded,
                        message = CreateComment_Task.message,
                        newComment = CreateComment_Task.commentReadDTO
                    });
                }
            }

            return(new
            {
                status = false,
                code = ReturnCodes.ParameterError,
                message = "Dữ Liệu Không Hợp Lệ"
            });
        }
        public dynamic Login([FromBody] UserLoginModel user)
        {
            if (ModelState.IsValid)
            {
                Services.Entities.CustomResponse Login_Response = _userService.Login(user.Email, user.Password);

                if (Login_Response.status)
                {
                    Token token_current = _userService.GetToken(Login_Response.userReadDTO.UserID);

                    //Lần Đầu Tiên Đăng Nhập
                    if (token_current == null)
                    {
                        Utilities.JWT.TokenResponse tokens = TokenUtil.GenerateTokens(Login_Response.userReadDTO, Startup.userTokenOption);

                        DTO.ReadDTO.TokenReadDTO tokenReadDTO = new DTO.ReadDTO.TokenReadDTO
                        {
                            AccessToken           = tokens.AccessToken,
                            AccessTokenExpriesIn  = tokens.AccessTokenExpiresIn,
                            RefreshToken          = tokens.RefreshToken,
                            RefreshTokenExpriesIn = tokens.RefreshTokenExpiresIn,
                        };

                        //Lưu Token Mới Vào Database
                        _userService.AddToken(Login_Response.userReadDTO.UserID, tokenReadDTO);

                        return(new
                        {
                            status = true,
                            code = ReturnCodes.DataGetSucceeded,
                            message = "Đăng Nhập Thành Công",
                            data = Login_Response.userReadDTO,
                            tokens = tokens
                        });
                    }

                    //Nếu Token Trong Database Đã Hết Hạn
                    if (!TokenUtil.isExpiredTime(token_current.AccessToken))
                    {
                        Utilities.JWT.TokenResponse tokens = TokenUtil.GenerateTokens(Login_Response.userReadDTO, Startup.userTokenOption);

                        DTO.ReadDTO.TokenReadDTO tokenReadDTO = new DTO.ReadDTO.TokenReadDTO
                        {
                            AccessToken           = tokens.AccessToken,
                            AccessTokenExpriesIn  = tokens.AccessTokenExpiresIn,
                            RefreshToken          = tokens.RefreshToken,
                            RefreshTokenExpriesIn = tokens.RefreshTokenExpiresIn,
                        };

                        _userService.UpdateToken(Login_Response.userReadDTO.UserID, tokenReadDTO);
                    }

                    return(new
                    {
                        status = true,
                        code = ReturnCodes.DataGetSucceeded,
                        message = "Đăng Nhập Thành Công",
                        data = Login_Response.userReadDTO,
                        tokens = _mapper.Map <TokenReadDTO>(token_current)
                    });
                }
            }

            return(new
            {
                status = false,
                code = ReturnCodes.DataGetFailed,
                message = "Đăng Nhập Không Thành Công"
            });
        }