/// <summary> /// Reload data. /// </summary> public override void ReloadData() { requestedUserId = ValidationHelper.GetInteger(ContextMenu.Parameter, 0); DataTable table = new DataTable(); table.Columns.Add("ActionDisplayName"); table.Columns.Add("ActionScript"); // Get resource strings prefix string resourcePrefix = ContextMenu.ResourcePrefix; // Add only if community is present if (CommunityPresent) { // Friendship request if ((requestedUserId != currentUser.UserID) && UIHelper.IsFriendsModuleEnabled(SiteContext.CurrentSiteName)) { FriendshipStatusEnum status = currentUser.HasFriend(requestedUserId); bool authenticated = AuthenticationHelper.IsAuthenticated(); // If friendship exists add reject action or request friendship if (status == FriendshipStatusEnum.Approved) { table.Rows.Add(new object[] { ResHelper.GetString(resourcePrefix + ".rejectfriendship|friends.rejectfriendship"), authenticated ? "ContextFriendshipReject(GetContextMenuParameter('" + ContextMenu.MenuID + "'))" : "ContextRedirectToSignInUrl()" }); } else if ((status == FriendshipStatusEnum.None) || currentUser.IsPublic()) { table.Rows.Add(new object[] { ResHelper.GetString(resourcePrefix + ".requestfriendship|friends.requestfriendship"), authenticated ? "ContextFriendshipRequest(GetContextMenuParameter('" + ContextMenu.MenuID + "'))" : "ContextRedirectToSignInUrl()" }); } // Group invitation table.Rows.Add(new object[] { ResHelper.GetString(resourcePrefix + ".invite|groupinvitation.invite"), authenticated ? "ContextGroupInvitation(GetContextMenuParameter('" + ContextMenu.MenuID + "'))" : "ContextRedirectToSignInUrl()" }); } } // Add only if messaging is present if (MessagingPresent) { // Check if user is in ignore list isInIgnoreList = ModuleCommands.MessagingIsInIgnoreList(currentUser.UserID, requestedUserId); // Check if user is in contact list isInContactList = ModuleCommands.MessagingIsInContactList(currentUser.UserID, requestedUserId); bool authenticated = AuthenticationHelper.IsAuthenticated(); table.Rows.Add(new object[] { ResHelper.GetString(resourcePrefix + ".sendmessage|sendmessage.sendmessage"), authenticated ? "ContextPrivateMessage(GetContextMenuParameter('" + ContextMenu.MenuID + "'))" : "ContextRedirectToSignInUrl()" }); // Not for the same user if (requestedUserId != currentUser.UserID) { // Add to ignore list or add to contact list actions if (!isInIgnoreList) { table.Rows.Add(new object[] { ResHelper.GetString(resourcePrefix + ".addtoignorelist|messsaging.addtoignorelist"), authenticated ? "ContextAddToIgnoretList(GetContextMenuParameter('" + ContextMenu.MenuID + "'))" : "ContextRedirectToSignInUrl()" }); } if (!isInContactList) { table.Rows.Add(new object[] { ResHelper.GetString(resourcePrefix + ".addtocontactlist|messsaging.addtocontactlist"), authenticated ? "ContextAddToContactList(GetContextMenuParameter('" + ContextMenu.MenuID + "'))" : "ContextRedirectToSignInUrl()" }); } } } // Add count column DataColumn countColumn = new DataColumn(); countColumn.ColumnName = "Count"; countColumn.DefaultValue = table.Rows.Count; table.Columns.Add(countColumn); repItem.DataSource = table; repItem.DataBind(); }