コード例 #1
0
        public static HtmlString GetContactRequestButton(
            Context context,
            IContactService contactService,
            IContactRequestService contactRequestService,
            User user,
            string cssClasses = "")
        {
            if (contactRequestService.HasActiveContactRequest(user, context.CurrentUser))
            {
                int requestId = contactRequestService.GetContactRequestsFromUserToUser(user, context.CurrentUser).Where(r => r.IsActive()).Select(c => c.Id).First();

                return(new HtmlString(
                           $"<button class='btn btn-outline-success request-{requestId} {cssClasses} margin-right' onclick=\"window.ZokuChat.acceptRequestButtonClick($(this), '{requestId}');\">Accept Request</button>" +
                           $"<button class='btn btn-outline-danger request-{requestId} {cssClasses}' onclick=\"window.ZokuChat.cancelRequestButtonClick($(this), '{requestId}');\">Decline Request</button>"
                           ));
            }
            else if (contactRequestService.HasActiveContactRequest(context.CurrentUser, user))
            {
                return(new HtmlString($"<button class='btn btn-outline-primary {cssClasses}' disabled>Request Sent</button>"));
            }
            else
            {
                return(new HtmlString($"<button class='btn btn-outline-primary {cssClasses}' onclick=\"window.ZokuChat.sendRequestButtonClick($(this), '{user.Id}');\">Send Request</button>"));
            }
        }
コード例 #2
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();
            }
        }