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(); } }
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)); }