using System;
using System.Data;
using System.Web.UI.WebControls;
using CMS.CMSHelper;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
using CMS.SiteProvider;
using CMS.UIControls;
public partial class CMSModules_Friends_Controls_FriendsUserList : CMSUserControl
{
#region "Variables"
private bool mShowItemAsLink = true;
private bool mShowAddLink = false;
#endregion
#region "Public properties"
///
/// Zero rows text.
///
public string ZeroRowsText
{
get
{
return gridFriends.ZeroRowsText;
}
set
{
gridFriends.ZeroRowsText = value;
}
}
///
/// Size of the page.
///
public string PageSize
{
get
{
return gridFriends.PageSize;
}
set
{
gridFriends.PageSize = value;
}
}
///
/// Determines whether to show add new item link.
///
public bool ShowAddLink
{
get
{
return mShowAddLink;
}
set
{
mShowAddLink = value;
}
}
///
/// Determines whether to show items as links.
///
public bool ShowItemAsLink
{
get
{
return mShowItemAsLink;
}
set
{
mShowItemAsLink = value;
}
}
#endregion
#region "Page events"
protected void Page_Load(object sender, EventArgs e)
{
if (StopProcessing)
{
// Stop processing
}
else
{
CurrentUserInfo user = CMSContext.CurrentUser;
// Content is visible only for authenticated users
if (user.IsAuthenticated())
{
if (string.IsNullOrEmpty(ZeroRowsText))
{
ZeroRowsText = GetString("friends.nofriendsfound");
}
// Register modal dialog JS function
ScriptHelper.RegisterDialogScript(Page);
gridFriends.OrderBy = "UserName";
gridFriends.OnExternalDataBound += gridFriends_OnExternalDataBound;
gridFriends.IsLiveSite = IsLiveSite;
// Where condition
string where = "FriendStatus = " + Convert.ToInt32(FriendshipStatusEnum.Approved);
// If not global admin, filter out friends from different sites
if (!user.IsGlobalAdministrator)
{
where = SqlHelperClass.AddWhereCondition(where, "UserID IN(SELECT UserID FROM CMS_UserSite WHERE SiteID=" + CMSContext.CurrentSiteID + " )");
}
gridFriends.WhereCondition = where;
// Add parameter @UserID
if (gridFriends.QueryParameters == null)
{
gridFriends.QueryParameters = new QueryDataParameters();
}
gridFriends.QueryParameters.Add("@UserID", user.UserID);
}
else
{
Visible = false;
}
}
}
#endregion
#region "Grid methods"
protected object gridFriends_OnExternalDataBound(object sender, string sourceName, object parameter)
{
switch (sourceName)
{
case "formattedusername":
DataRowView drv = parameter as DataRowView;
int userId = ValidationHelper.GetInteger(drv["UserID"], 0);
return GetItemText(userId, drv["UserName"], drv["FullName"], drv["UserNickName"]);
}
return parameter;
}
///
/// Renders row item according to control settings.
///
/// Selected user id
/// User Name
/// User full name
/// Nickname
protected string GetItemText(int userId, object username, object fullname, object usernickname)
{
string usrName = ValidationHelper.GetString(username, string.Empty);
string nick = HTMLHelper.HTMLEncode(Functions.GetFormattedUserName(usrName, fullname.ToString(), usernickname.ToString(), IsLiveSite));
if (ShowItemAsLink)
{
return "" + nick + "";
}
return nick;
}
#endregion
}