Example #1
0
        public IActionResult GetSoSaoDanhGiaOfTruyen(int id)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var soSao = _repository.Truyen.GetDanhGiaSaoOfTruyenAsync(id);

                return(Ok(soSao));
            }
            catch
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm GetTacGiaByDetails"
                }));
            }
        }
Example #2
0
        public async Task <IActionResult> GetAllChuongsWithNoiDungChuong()
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var chuongs = await _repository.Chuong.GetAllChuongsAsync();

                return(Ok(chuongs));
            }
            catch
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm GetAllChuongsWithNoiDungChuong"
                }));
            }
        }
Example #3
0
        public async Task <IActionResult> GetTacGiaByDetails(int id)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var tacGia = await _repository.TacGia.GetTacGiaByDetailAsync(id);

                if (tacGia == null)
                {
                    return(NotFound());
                }
                else
                {
                    var ownerResult = _mapper.Map <TacGiaDto>(tacGia);
                    return(Ok(ownerResult));
                }
            }
            catch
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm GetTacGiaByDetails"
                }));
            }
        }
Example #4
0
        public async Task <IActionResult> GetNoiDungChuongById(int id)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var noiDungChuong = await _repository.NoiDungChuong.GetNoiDungChuongByIdAsync(id);

                if (noiDungChuong == null)
                {
                    return(NotFound());
                }
                else
                {
                    var noiDungChuongResult = _mapper.Map <NoiDungChuongDto>(noiDungChuong);
                    return(Ok(noiDungChuongResult));
                }
            }
            catch
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm GetTheLoaiById"
                }));
            }
        }
Example #5
0
        public IActionResult GetSoLuotTheoDoisByTruyenId(int id)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var soLuotTheoDoi = _repository.TheoDoi.GetLuotTheoDoiByTruyenID(id);
                return(Ok(soLuotTheoDoi));
            }
            catch
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm GetSoLuotTheoDoisByTruyenId"
                }));
            }
        }
Example #6
0
        public async Task <IActionResult> GetAllTacGias()
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var tacGias = await _repository.TacGia.GetAllTacGiasAsync();

                var tacGiasResult = _mapper.Map <IEnumerable <TacGiaDto> >(tacGias);

                return(Ok(tacGiasResult));
            }
            catch
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm GetAllTacGias"
                }));
            }
        }
Example #7
0
        public IActionResult CreateTruyen([FromBody] IEnumerable <TruyenForCreationDto> truyen)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                if (truyen == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Thông tin trống"
                    }));
                }

                if (!ModelState.IsValid)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Các trường dữ liệu chưa đúng"
                    }));
                }

                var truyenEntity = _mapper.Map <IEnumerable <Truyen> >(truyen);

                var response = _repository.Truyen.CreateTruyen(truyenEntity);
                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }
                else
                {
                    return(BadRequest(response));
                }

                var createdTruyen = _mapper.Map <IEnumerable <TruyenDto> >(truyenEntity);

                _logger.LogInfo("Thêm mới danh sách truyện thành công");

                return(Ok(createdTruyen));
            }
            catch (Exception ex)
            {
                _logger.LogError("Lỗi khi create list truyện: " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm CreateTruyen"
                }));
            }
        }
Example #8
0
        public IActionResult CreateUser([FromBody] UserForCreationDto user)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                if (user == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Thông tin trống"
                    }));
                }

                if (!ModelState.IsValid)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Các trường dữ liệu chưa đúng"
                    }));
                }

                var userEntity = _mapper.Map <User>(user);

                var response = _repository.User.CreateUser(userEntity);
                if (response != null)
                {
                    _repository.Save();
                }
                else
                {
                    return(BadRequest(response));
                }

                var createdUser = _mapper.Map <UserDto>(userEntity);

                _logger.LogInfo("User mới đăng ký với ID là: " + userEntity.UserID);

                return(Ok(createdUser));
            }
            catch (Exception ex)
            {
                _logger.LogError("Lỗi khi create new user: "******"Lỗi execption ở hàm CreateUser"
                }));
            }
        }
Example #9
0
        public async Task <IActionResult> UpdateAvatar([FromBody] UpdateUserAvatarDto updateUserAvatarDto)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                if (!ModelState.IsValid)
                {
                    return(BadRequest("Các trường dữ liệu nhập vào chưa chính xác!"));
                }

                if (updateUserAvatarDto.HinhAnh == "")
                {
                    return(BadRequest("Hình ảnh không được để trống!"));
                }

                var userRepo = await _repository.User.GetUserByIDAsync(updateUserAvatarDto.UserID);

                if (userRepo == null)
                {
                    return(BadRequest("Tài khoản không tồn tại!"));
                }

                //Ta cập nhật lại bảng user nhưng chỉ với trường dữ liệu là HinhAnh
                ResponseDetails response = _repository.User.UpdateUser(new User()
                {
                    UserID                 = userRepo.UserID,
                    ApplicationUserID      = userRepo.ApplicationUserID,
                    Quyen                  = userRepo.Quyen,
                    TinhTrang              = userRepo.TinhTrang,
                    HinhAnh                = updateUserAvatarDto.HinhAnh,
                    RefreshToken           = userRepo.RefreshToken,
                    RefreshTokenExpiryTime = userRepo.RefreshTokenExpiryTime,
                    UserName               = userRepo.UserName
                });

                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Lỗi khi cập nhật avatar cho user với id {updateUserAvatarDto.UserID}: ${ex}");
            }

            return(Ok());
        }
Example #10
0
        public async Task <IActionResult> UpdateTheLoai(int id, [FromBody] TheLoaiForUpdateDto theLoai)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                if (theLoai == null)
                {
                    return(BadRequest("TheLoai object is null"));
                }

                if (!ModelState.IsValid)
                {
                    return(BadRequest("Invalid model object"));
                }

                var theLoaiEntity = await _repository.TheLoai.GetTheLoaiByIdAsync(id);

                if (theLoaiEntity == null)
                {
                    return(NotFound());
                }

                _mapper.Map(theLoai, theLoaiEntity);

                ResponseDetails response = _repository.TheLoai.UpdateTheLoai(theLoaiEntity);

                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }
                else
                {
                    return(BadRequest(response));
                }

                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.LogError("Gặp lỗi khi cập nhật thể loại có ID " + id + ": " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm UpdateTheLoai"
                }));
            }
        }
Example #11
0
        public IActionResult CreateTheoDoi([FromBody] TheoDoiForCreationDto theoDoi)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                if (theoDoi == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Thông tin trống"
                    }));
                }

                if (!ModelState.IsValid)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Các trường dữ liệu chưa đúng"
                    }));
                }

                var theoDoiEntity = _mapper.Map <TheoDoi>(theoDoi);

                var response = _repository.TheoDoi.CreateTheoDoi(theoDoiEntity);
                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }
                else
                {
                    return(BadRequest(response));
                }

                var createdTheoDoi = _mapper.Map <TheoDoiDto>(theoDoiEntity);

                return(Ok(createdTheoDoi));
            }
            catch (Exception ex)
            {
                _logger.LogError("User " + theoDoi.UserID + " gặp lỗi khi tạo mới theo dõi truyện có ID " + theoDoi.TruyenID + ": " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm CreateTheoDoi"
                }));
            }
        }
Example #12
0
        public IActionResult CreateBinhLuan([FromBody] BinhLuanForCreationDto binhLuan)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                if (binhLuan == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Thông tin trống"
                    }));
                }

                if (!ModelState.IsValid)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Các trường dữ liệu chưa đúng"
                    }));
                }

                var binhLuanEntity = _mapper.Map <BinhLuan>(binhLuan);

                var response = _repository.BinhLuan.CreateBinhLuan(binhLuanEntity);
                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }
                else
                {
                    return(BadRequest(response));
                }

                var createdBinhLuan = _mapper.Map <BinhLuanDto>(binhLuanEntity);

                return(Ok(createdBinhLuan));
            }
            catch (Exception ex)
            {
                _logger.LogError("Gặp lỗi khi tạo mới bình luận: " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm CreateBinhLuan"
                }));
            }
        }
Example #13
0
        public IActionResult CreateTacGia([FromBody] IEnumerable <TacGiaForCreationDto> tacGia)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                if (tacGia == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Thông tin trống"
                    }));
                }

                if (!ModelState.IsValid)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Các trường dữ liệu chưa đúng"
                    }));
                }

                var tacGiaEntity = _mapper.Map <IEnumerable <TacGia> >(tacGia);

                ResponseDetails response = _repository.TacGia.CreateTacGia(tacGiaEntity);
                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }
                else
                {
                    return(BadRequest(response));
                }

                var createdTacGia = _mapper.Map <IEnumerable <TacGiaDto> >(tacGiaEntity);

                return(Ok(createdTacGia));
            }
            catch (Exception ex)
            {
                _logger.LogError("Gặp lỗi khi tạo mới tác giả: " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm CreateTacGia"
                }));
            }
        }
Example #14
0
        public IActionResult CreateChuong([FromBody] IEnumerable <ChuongForCreationDto> chuong)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                if (chuong == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Thông tin trống"
                    }));
                }

                if (!ModelState.IsValid)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Các trường dữ liệu chưa đúng"
                    }));
                }

                var chuongEntity = _mapper.Map <IEnumerable <Chuong> >(chuong);

                var response = _repository.Chuong.CreateChuong(chuongEntity);
                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }
                else
                {
                    return(BadRequest(response));
                }

                var createdChuong = _mapper.Map <IEnumerable <ChuongDto> >(chuongEntity);

                return(Ok(createdChuong));
            }
            catch (Exception ex)
            {
                _logger.LogError("Gặp lỗi khi tạo mới danh sách chương: " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm CreateChuong"
                }));
            }
        }
Example #15
0
        public async Task <IActionResult> AdminLogin([FromBody] UserForAuthenticationDto userForAuthentication)
        {
            var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

            if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                }));
            }

            var user = await _userManager.FindByEmailAsync(userForAuthentication.Email);

            if (user == null)
            {
                return(BadRequest(new AuthResponseDto {
                    Message = "Tài khoản không tồn tại!"
                }));
            }

            //Nếu validate có lỗi thì trả về bad request
            var validate = _repository.Authenticate.ValidateLogin(userForAuthentication);

            if (validate != null)
            {
                return(BadRequest(validate));
            }

            if (!await _userManager.CheckPasswordAsync(user, userForAuthentication.Password))
            {
                return(BadRequest(new AuthResponseDto {
                    Message = "Thông tin đăng nhập sai"
                }));
            }

            var userGetting = await _repository.User.GetUserByApplicationUserIDAsync(user.Id);

            if (userGetting.Quyen == Data.UserRole)
            {
                return(Unauthorized(new AuthResponseDto {
                    Message = "Bạn không có được cấp quyền vào admin"
                }));
            }

            if (user.LockoutEnabled)
            {
                return(Unauthorized(new AuthResponseDto {
                    Message = "Bạn chưa được admin phê duyệt"
                }));
            }

            return(Ok(userGetting));
        }
Example #16
0
        public IActionResult UpdatePhuLuc([FromBody] IEnumerable <PhuLucForUpdateDto> phuLuc)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                if (phuLuc == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Thông tin trống"
                    }));
                }

                if (!ModelState.IsValid)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "Các trường dữ liệu chưa đúng"
                    }));
                }

                var phuLucsResult = _mapper.Map <IEnumerable <PhuLuc> >(phuLuc);

                ResponseDetails response = _repository.PhuLuc.UpdatePhuLuc(phuLucsResult);

                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }
                else
                {
                    return(BadRequest(response));
                }

                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.LogError("Gặp lỗi khi cập nhật danh sách phụ lục của truyện: " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm UpdatePhuLuc"
                }));
            }
        }
Example #17
0
        public async Task <IActionResult> Revoke(TokenApiModel tokenApiModel)
        {
            var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

            if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                }));
            }

            if (tokenApiModel is null)
            {
                return(BadRequest(new ResponseDetails()
                {
                    Message = "Token body truyền vào không hợp lệ", StatusCode = ResponseCode.Error
                }));
            }
            var principal = _tokenService.GetPrincipalFromExpiredToken(tokenApiModel.AccessToken, _config);

            if (principal == null)
            {
                return(BadRequest(new ResponseDetails()
                {
                    Message = "Token không được cấp quyền", StatusCode = ResponseCode.Error
                }));
            }

            var userID = principal.Claims?.FirstOrDefault(x => x.Type.Equals(NamePars.ClaimSid, StringComparison.OrdinalIgnoreCase))?.Value;

            var user = await _repository.User.GetUserByIDAsync(userID);

            if (user == null || user.RefreshToken != tokenApiModel.RefreshToken)
            {
                return(BadRequest(new ResponseDetails()
                {
                    Message = "các giá trị token không khớp với dữ liệu trong database", StatusCode = ResponseCode.Error
                }));
            }

            ResponseDetails response = _repository.User.UpdateUserRefreshToken(user, null, null);

            if (response.StatusCode == ResponseCode.Success)
            {
                _repository.Save();
            }
            else
            {
                _logger.LogError($"Lỗi khi revoke token cho user với id {user.UserID}");
            }
            return(Ok());
        }
Example #18
0
        public async Task <IActionResult> GetTruyenByTheoDoiForPagination([FromQuery] TheoDoiParameters theoDoiParameters)
        {
            var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

            if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                }));
            }


            if (theoDoiParameters.GetAll)
            {
                var truyens = await _repository.TheoDoi.GetTruyenByTheoDoiForPagination(theoDoiParameters);

                var metadata = new
                {
                    truyens.TotalCount,
                    truyens.PageSize,
                    truyens.CurrentPage,
                    truyens.TotalPages,
                    truyens.HasNext,
                    truyens.HasPrevious
                };

                Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));
                return(Ok(truyens));
            }
            if (theoDoiParameters.LastestUpdate)
            {
                var theoDois = await _repository.TheoDoi.GetTheoDoiLastestForPagination(theoDoiParameters);

                var metadata = new
                {
                    theoDois.TotalCount,
                    theoDois.PageSize,
                    theoDois.CurrentPage,
                    theoDois.TotalPages,
                    theoDois.HasNext,
                    theoDois.HasPrevious
                };

                Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));
                return(Ok(theoDois));
            }
            else
            {
                return(BadRequest("wrong request to get theo doi pagination"));
            }
        }
Example #19
0
        public async Task <IActionResult> ResetPassword([FromBody] ResetPasswordDto resetPasswordDto)
        {
            var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

            if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                }));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(new AuthResponseDto {
                    Message = "Các trường dữ liệu nhập vào chưa chính xác!"
                }));
            }

            //Nếu validate có lỗi thì trả về bad request
            var validate = _repository.Authenticate.ValidateResetPassword(resetPasswordDto);

            if (validate != null)
            {
                return(BadRequest(validate));
            }

            var user = await _userManager.FindByEmailAsync(resetPasswordDto.Email);

            if (user == null)
            {
                return(BadRequest(new AuthResponseDto {
                    Message = "Tài khoản không tồn tại!"
                }));
            }

            var resetPassResult = await _userManager.ResetPasswordAsync(user, resetPasswordDto.Token, resetPasswordDto.Password);

            if (!resetPassResult.Succeeded)
            {
                var errors = resetPassResult.Errors.Select(e => e.Description);

                return(BadRequest(new { Errors = errors }));
            }

            await _userManager.SetLockoutEnabledAsync(user, false);

            await _userManager.SetLockoutEndDateAsync(user, new DateTime(2000, 1, 1));

            return(Ok());
        }
Example #20
0
        public IActionResult CreateTheLoai([FromBody] IEnumerable <TheLoaiForCreationDto> theLoai)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                if (theLoai == null)
                {
                    return(BadRequest("TheLoai object is null"));
                }

                if (!ModelState.IsValid)
                {
                    return(BadRequest("Invalid model object"));
                }

                var theLoaiEntity = _mapper.Map <IEnumerable <TheLoai> >(theLoai);

                ResponseDetails response = _repository.TheLoai.CreateTheLoai(theLoaiEntity);
                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }
                else
                {
                    return(BadRequest(response));
                }

                var createdTheLoai = _mapper.Map <IEnumerable <TheLoaiDto> >(theLoaiEntity);

                return(Ok(createdTheLoai));
            }
            catch (Exception ex)
            {
                _logger.LogError("Gặp lỗi khi tạo mới danh sách thể loại: " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm CreateTheLoai"
                }));
            }
        }
Example #21
0
        public async Task <IActionResult> DeleteTheLoai(int id)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var theLoai = await _repository.TheLoai.GetTheLoaiByIdAsync(id);

                if (theLoai == null)
                {
                    return(NotFound());
                }

                if (_repository.PhuLuc.TheLoaisInPhuLuc(id).Any())
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = 500,
                        Message = "Không thể xóa TheLoai này. Tồn tại khóa ngoại tới bảng PhuLucs."
                    }));
                }

                ResponseDetails response = _repository.TheLoai.DeleteTheLoai(theLoai);

                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }

                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.LogError("Gặp lỗi khi cập nhật thể loại có ID " + id + ": " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = 500, Message = "Lỗi execption ở hàm DeleteTheLoai"
                }));
            }
        }
Example #22
0
        public async Task <IActionResult> GetUserByDetails(string userid)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var user = await _repository.User.GetUserByUserIDDetailAsync(userid);

                if (user == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "User không tồn tại"
                    }));
                }
                else
                {
                    //var UserResult = _mapper.Map<UserDto>(User);
                    var userApp = await _userManager.FindByIdAsync(user.ApplicationUserID);

                    return(Ok(new UserInfo()
                    {
                        Email = userApp.Email,
                        UserName = user.UserName,
                        FirstName = userApp.FirstName,
                        LastName = userApp.LastName,
                        HinhAnh = user.HinhAnh,
                        TheoDois = user.TheoDois,
                        BinhLuans = user.BinhLuans
                    }));
                }
            }
            catch
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm GetUserByDetails"
                }));
            }
        }
Example #23
0
        public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordDto forgotPasswordDto)
        {
            var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

            if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                }));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(new AuthResponseDto {
                    Message = "Các trường dữ liệu nhập vào chưa chính xác!"
                }));
            }

            var user = await _userManager.FindByEmailAsync(forgotPasswordDto.Email);

            if (user == null)
            {
                return(BadRequest(new AuthResponseDto {
                    Message = "Tài khoản không tồn tại!"
                }));
            }

            var token = await _userManager.GeneratePasswordResetTokenAsync(user);

            var param = new Dictionary <string, string>
            {
                { "token", token },
                { "email", forgotPasswordDto.Email }
            };

            var callback = QueryHelpers.AddQueryString(forgotPasswordDto.ClientURI, param);

            var message = new Message(new string[] { forgotPasswordDto.Email }, "Đặt lại mật khẩu", $"Vui lòng nhấn vào đường dẫn này để tiến hành đặt lại mật khẩu: {callback}", null);
            await _emailSender.SendEmailAsync(message);

            return(Ok());
        }
Example #24
0
        public async Task <IActionResult> DeleteTacGia(int id)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var tacGia = await _repository.TacGia.GetTacGiaByIdAsync(id);

                if (tacGia == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "ID tác giả không tồn tại"
                    }));
                }

                ResponseDetails response = _repository.TacGia.DeleteTacGia(tacGia);

                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }

                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.LogError("Gặp lỗi khi xóa tác giả với ID " + id + ": " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm DeleteTacGia"
                }));
            }
        }
Example #25
0
        public async Task <IActionResult> DeleteNoiDungChuong(int id)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var noiDungChuong = await _repository.NoiDungChuong.GetNoiDungChuongByIdAsync(id);

                if (noiDungChuong == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "ID Nội dung chương không tồn tại"
                    }));
                }

                ResponseDetails response = _repository.NoiDungChuong.DeleteNoiDungChuong(noiDungChuong);

                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }

                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.LogError("Gặp lỗi khi xóa nội dung chương với ID " + id + ": " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm DeleteNoiDungChuong"
                }));
            }
        }
Example #26
0
        public async Task <IActionResult> DeleteTheoDoiForUser([FromQuery] TheoDoiParameters theoDoiParameters)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var theoDoi = await _repository.TheoDoi.GetTheoDoiByUserIdAndTruyenIdAsync(theoDoiParameters.UserID, theoDoiParameters.TruyenID);

                if (theoDoi == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "ID TheoDoi không tồn tại"
                    }));
                }

                ResponseDetails response = _repository.TheoDoi.DeleteTheoDoi(theoDoi);

                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }

                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.LogError("Gặp lỗi khi xóa theo dõi có userID " + theoDoiParameters.UserID + " và truyện ID " + theoDoiParameters.TruyenID + ": " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm DeleteTheoDoiForUser"
                }));
            }
        }
Example #27
0
        public async Task <IActionResult> GetAllUsers()
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var users = await _repository.User.GetAllUsersAsync();

                var applicationUsers = await _userManager.Users.ToListAsync();

                var result = (from m in users
                              join n in applicationUsers
                              on m.ApplicationUserID equals n.Id
                              select new UserDto {
                    UserID = m.UserID,
                    LockoutEnabled = n.LockoutEnabled,
                    Quyen = m.Quyen,
                    UserName = m.UserName,
                    HinhAnh = m.HinhAnh,
                    TinhTrang = m.TinhTrang
                });

                var usersResult = _mapper.Map <IEnumerable <UserDto> >(result);

                return(Ok(usersResult));
            }
            catch
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm GetAllUsers"
                }));
            }
        }
Example #28
0
        public async Task <IActionResult> DeleteUser(string userid)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }

                var user = await _repository.User.GetUserByIDAsync(userid);

                if (user == null)
                {
                    return(NotFound(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Error, Message = "ID truyện không tồn tại"
                    }));
                }

                ResponseDetails response = _repository.User.DeleteUser(user);

                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }

                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.LogError("Lỗi khi delete user " + userid + ": " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm DeleteUser"
                }));
            }
        }
Example #29
0
        public async Task <IActionResult> SendMail([FromQuery] SendMailParameters mail)
        {
            var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

            if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                }));
            }

            if (mail.Address == "" || mail.Address == null)
            {
                return(BadRequest("Địa chỉ email không được để trống"));
            }

            var message = new Message(new string[] { mail.Address }, mail.Subject, mail.Content, null);
            await _emailSender.SendEmailAsync(message);

            return(Ok("Email gửi thành công!"));
        }
Example #30
0
        public IActionResult DeleteMultipleNoiDungChuong([FromBody] IEnumerable <NoiDungChuongForDeleteDto> noiDungChuong)
        {
            try
            {
                var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

                if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
                {
                    return(BadRequest(new ResponseDetails()
                    {
                        StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                    }));
                }


                var noiDungChuongEntity = _mapper.Map <IEnumerable <NoiDungChuong> >(noiDungChuong);

                var response = _repository.NoiDungChuong.DeleteMultipleNoiDungChuong(noiDungChuongEntity);
                if (response.StatusCode == ResponseCode.Success)
                {
                    _repository.Save();
                }
                else
                {
                    return(BadRequest(response));
                }

                return(Ok(noiDungChuongEntity));
            }
            catch (Exception ex)
            {
                _logger.LogError("Gặp lỗi khi xóa danh sách nội dung chương: " + ex);
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = "Lỗi execption ở hàm DeleteMultipleNoiDungChuong"
                }));
            }
        }