예제 #1
0
        public async Task <IEnumerable <UserForListDto> > GetUserLikers(HttpResponse response, UserParams userParams)
        {
            var currentUserId = int.Parse(httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value);

            userParams.UserId = currentUserId;
            if (!userParams.Likers && !userParams.Likees)
            {
                throw new Exception("Not Found.!!");
            }
            var userFromRepo = await userDal.Get(u => u.Id == userParams.UserId);

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

            var users = await userDal.GetUserLikers(userParams);

            if (userDal == null)
            {
                throw new Exception("Not found any Likers or Likees.!!");
            }

            var userForReturn = mapper.Map <IEnumerable <UserForListDto> >(users);

            response.AddPagination(users.CurrentPage, users.PageSize, users.TotalCount, users.TotalPages);
            return(userForReturn);
        }
        public async Task <IEnumerable <MessageToReturnDto> > GetMessagesForUser(HttpResponse response, int userId, MessageParams messageParams)
        {
            var currentUserId = int.Parse(httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value);

            if (userId != currentUserId)
            {
                throw new Exception("UnAuthorized.!!");
            }
            messageParams.UserId = userId;

            var messages = await messageDal.GetMessagesForUser(messageParams);

            if (messages == null)
            {
                throw new Exception("Messages not found.!!");
            }

            var messagesToreturn = mapper.Map <IEnumerable <MessageToReturnDto> >(messages);

            response.AddPagination(messages.CurrentPage, messages.PageSize, messages.TotalCount, messages.TotalPages);
            return(messagesToreturn);
        }