예제 #1
0
        public async Task <IActionResult> GetMessage(int userId, int id)
        {
            if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }
            var messageFromRepo = await _repo.GetMessage(id);

            if (messageFromRepo == null)
            {
                return(NotFound());
            }
            return(Ok(messageFromRepo));
        }
예제 #2
0
        public async Task <ActionResult <Users> > DeleteUser(int id)
        {
            var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            if (currentUserId == id)
            {
                var user = await _repo.GetUser(id);

                if (user == null)
                {
                    return(NotFound("No user found for this Id"));
                }

                var messageFromRepo = await _repo.GetMessage(id);

                if (messageFromRepo != null)
                {
                    if (messageFromRepo.SenderId == id)
                    {
                        messageFromRepo.SenderDeleted = true;
                    }
                    if (messageFromRepo.RecipientId == id)
                    {
                        messageFromRepo.RecipientDeleted = true;
                    }

                    if (messageFromRepo.SenderDeleted && messageFromRepo.RecipientDeleted)
                    {
                        _repo.Delete(messageFromRepo);
                    }
                    await _repo.SaveAll();
                }

                var likesFrom = await _repo.GetLike(currentUserId);

                if (likesFrom != null)
                {
                    if (likesFrom.LikeeId == currentUserId || likesFrom.LikerId == currentUserId)
                    {
                        _repo.Delete <Like>(likesFrom);
                    }
                    await _repo.SaveAll();
                }
                //user.Likees = null;
                //user.Likers = null;

                _repo.Delete <Users>(user);

                await _repo.SaveAll();

                return(NoContent());
            }
            return(BadRequest("Problem to delete User"));
        }
        public async Task <IActionResult> GetMessage(int userid, int messageid)
        {
            try
            {
                if (userid != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
                {
                    return(Unauthorized());
                }

                var message = await _datingrepo.GetMessage(messageid);

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

                return(Ok(message));
            }
            catch (Exception ex)
            {
                throw new Exception("Error while fetching message");
            }
        }