Beispiel #1
0
        public userRetorno IncluirUsuario(userParams parametros)
        {
            //Incluir no log o start de execução (data e hora de início) e o request do processo.
            userRetorno  retorno      = new userRetorno();
            userBusiness userBusiness = new userBusiness();

            retorno.Sucesso = false;
            if (parametros.User == "" || parametros.User == null)
            {
                retorno.Mensagem = "O campo Usuário não pode ficar em branco.";
            }
            else if (parametros.Pass == "" || parametros.Pass == null)
            {
                retorno.Mensagem = "O campo Password não pode ficar em branco.";
            }
            else if (parametros.Name == "" || parametros.Name == null)
            {
                retorno.Mensagem = "O campo Nome não pode ficar em branco.";
            }
            else if (parametros.Email == "" || parametros.Email == null)
            {
                retorno.Mensagem = "O campo E-Mail não pode ficar em branco.";
            }
            else if (!utilData.Valida_EMail(parametros.Email))
            {
                retorno.Mensagem = "O campo E-Mail contém um valor inválido.";
            }
            else
            {
                retorno = userBusiness.CriarUsuario(parametros.User, parametros.Pass, parametros.Name, parametros.Email);
            }
            //Incluir no log o response do processo e o tempo de execução (Elapsed time).
            return(retorno);
        }
        public async Task <PageList <User> > GetUsers(userParams userParams)
        {
            var UserResult = _context.Users.Include(p => p.Photos).
                             OrderByDescending(x => x.LastActive)
                             .AsQueryable();

            UserResult = UserResult.Where(x => x.Id != userParams.UserId);

            UserResult = UserResult.Where(x => x.Gender == userParams.Gender);

            if (userParams.Likers)
            {
                var userlikers = await GetUsersLikes(userParams.UserId, userParams.Likers);

                UserResult = UserResult.Where(x => userlikers.Contains(x.Id));
            }

            if (userParams.Likees)
            {
                var userlikees = await GetUsersLikes(userParams.UserId, userParams.Likers);

                UserResult = UserResult.Where(x => userlikees.Contains(x.Id));
            }

            if (userParams.MinAge != 18 || userParams.MaxAge != 99)
            {
                var maxDob = DateTime.Today.AddYears(-userParams.MaxAge - 1);
                var minDob = DateTime.Today.AddYears(-userParams.MinAge);

                UserResult = UserResult.Where(x => x.DOB >= minDob && x.DOB <= maxDob);
            }

            if (!string.IsNullOrEmpty(userParams.Orderby))
            {
                switch (userParams.Orderby)
                {
                case "created":
                    UserResult = UserResult.OrderByDescending(x => x.Createed);
                    break;

                default:
                    UserResult = UserResult.OrderByDescending(x => x.LastActive);
                    break;
                }
            }
            return(await PageList <User> .CreateAsync(UserResult, userParams.PageNumber, userParams.PageSize));
        }
        public async Task <IActionResult> getUsers([FromQuery] userParams userparams)
        {
            var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            var userFromRepo = await _DatingRepository.GetUser(currentUserId);

            userparams.UserId = currentUserId;

            if (string.IsNullOrEmpty(userparams.Gender))
            {
                userparams.Gender = userFromRepo.Gender == "male"? "Female": "male";
            }

            var users = await _DatingRepository.GetUsers(userparams);

            var userCollectons = _mapper.Map <IEnumerable <UsersForDto> >(users);

            Response.AddPagination(users.CurrentPage, users.PageSize,
                                   users.TotalCount, users.TotalPage);

            return(Ok(userCollectons));
        }