Пример #1
0
        public void BlockUser(User blocker, User blocked)
        {
            // Validate
            blocker.Should().NotBeNull();
            blocked.Should().NotBeNull();

            if (!IsUserBlocked(blocked, blocker))
            {
                DateTime now = DateTime.UtcNow;

                if (_contactService.IsUserContact(blocker, blocked))
                {
                    // The users are contacts so delete the connection
                    Contact contact = _contactService.GetUserContact(blocker, blocked);
                    _contactService.DeleteContact(contact);
                }
                else
                {
                    // The users are not contacts but there may be an active request, so delete if necessary
                    if (_contactRequestService.HasActiveContactRequest(blocker, blocked))
                    {
                        ContactRequest contactRequest = _contactRequestService.GetContactRequestsFromUserToUser(blocker, blocked).Where(r => r.IsActive()).First();
                        _contactRequestService.CancelContactRequest(blocker, contactRequest);
                    }
                    else if (_contactRequestService.HasActiveContactRequest(blocked, blocker))
                    {
                        ContactRequest contactRequest = _contactRequestService.GetContactRequestsFromUserToUser(blocked, blocker).Where(r => r.IsActive()).First();
                        _contactRequestService.CancelContactRequest(blocker, contactRequest);
                    }
                }

                // Block and save
                _context.BlockedUsers.Add(new BlockedUser
                {
                    BlockerUID      = blocker.Id,
                    BlockedUID      = blocked.Id,
                    CreatedUID      = blocker.Id,
                    CreatedDateUtc  = now,
                    ModifiedUID     = blocker.Id,
                    ModifiedDateUtc = now
                });
                _context.SaveChanges();
            }
        }
Пример #2
0
        public JsonResult CancelRequest(int requestId)
        {
            GenericResponse result = new GenericResponse()
            {
                IsSuccessful = false
            };

            try
            {
                if (requestId <= 0)
                {
                    result.ErrorMessage = "Bad request.";
                    return(new JsonResult(result));
                }

                // Retrieve the requested user
                ContactRequest request = _contactRequestService.GetContactRequest(requestId);

                if (request != null && ContactRequestPermissionHelper.CanModifyContactRequest(_context.CurrentUser, request))
                {
                    // Cancel the request
                    _contactRequestService.CancelContactRequest(_context.CurrentUser, request);

                    // If we got this far we're successful
                    result.IsSuccessful = true;
                }
                else
                {
                    result.ErrorMessage = "You do not have permission to modify this contact request.";
                }
            }
            catch (Exception e)
            {
                result.ErrorMessage = "An exception occured.";
                _exceptionService.ReportException(e);
            }

            return(new JsonResult(result));
        }