示例#1
0
        public async Task <IActionResult> Register([FromBody] GetMovisRequestDTO userForRegisterDto)
        {
            if (await _authRepository.UserExists(userForRegisterDto.Email))
            {
                ModelState.AddModelError("UserName", "Username already exists");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userToCreate = new User
            {
                NickName         = userForRegisterDto.Email,
                Email            = userForRegisterDto.Email,
                SurName          = userForRegisterDto.Surname,
                Name             = userForRegisterDto.Name,
                SystemInsertUser = "******",
                SystemInsertTime = DateTime.Now,
                IsActive         = true,
                RememberMe       = true,
                BirthDate        = DateTime.Now
            };
            var createdUser = await _authRepository.Register(userToCreate, userForRegisterDto.Password);

            createdUser.PasswordSalt = null;
            createdUser.PasswordHash = null;
            return(StatusCode(201, createdUser));
        }
示例#2
0
        public PublisherMoviesCanli MoviesDetails([FromBody] GetMovisRequestDTO getMovisRequestDTO)
        {
            var details = _appRepository.GetMoviesById(getMovisRequestDTO.Id);

            if (details != null)
            {
                return(details);
            }
            else
            {
                return(null);
            }
        }
示例#3
0
        public List <GetMoviesHomePageDTO> MoviestList([FromBody] GetMovisRequestDTO getMovisRequestDTO)
        {
            List <GetMoviesHomePageDTO> listmoviesToReturn = new List <GetMoviesHomePageDTO>();

            if (getMovisRequestDTO.Offset == 1)
            {
                var listmovies = _appRepository.GetMovies(getMovisRequestDTO.Offset - 1, getMovisRequestDTO.Limit);
                listmoviesToReturn = _mapper.Map <List <GetMoviesHomePageDTO> >(listmovies);
            }
            else
            {
                var listmovies = _appRepository.GetMovies(getMovisRequestDTO.Offset, getMovisRequestDTO.Limit);
                listmoviesToReturn = _mapper.Map <List <GetMoviesHomePageDTO> >(listmovies);
            }
            return(listmoviesToReturn);
        }
示例#4
0
        public async Task <ActionResult> Login([FromBody] GetMovisRequestDTO userForLoginDto)
        {
            var user = await _authRepository.Login(userForLoginDto.Email, userForLoginDto.Password);

            if (user == null)
            {
                return(Unauthorized());
            }

            var tokenHandler = new JwtSecurityTokenHandler();
            var key          = Encoding.ASCII.GetBytes(_configuration.GetSection("AppSettings:Token").Value);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                    new Claim(ClaimTypes.Name, user.NickName)
                }),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key)
                                                            , SecurityAlgorithms.HmacSha512Signature)
            };

            var token       = tokenHandler.CreateToken(tokenDescriptor);
            var tokenString = tokenHandler.WriteToken(token);

            userForLoginDto.Token    = tokenString;
            userForLoginDto.Name     = user.Name;
            userForLoginDto.Surname  = user.SurName;
            userForLoginDto.Password = "";
            CacheModel cacheModel = new CacheModel();

            cacheModel.Email     = user.Email;
            cacheModel.Name      = user.Name;
            cacheModel.Surname   = user.Name;
            cacheModel.Token     = tokenString;
            user.PasswordHash    = null;
            user.PasswordSalt    = null;
            cacheModel.TokenTime = DateTime.Now;
            _cache.SetCache(cacheModel);
            return(Ok(user));
        }