using System;
using SiberTek.Xenta.Managers;
using SiberTek.Xenta.Entities.Collections;
namespace SiberTek.Xenta.Entities
{
/// <summary>
/// Represents an forum profile entity
/// </summary>
public class ForumProfileInfo : BusinessEntityBase
{
#region Fields
private int _profileID;
private int _userID;
private int _lastPostID;
private int _postCount;
private int _rankID;
private DateTime _createdOn;
private DateTime _updatedOn;
#endregion
#region Constructors
public ForumProfileInfo() : this(0, 0, 0, 0, 0, DateTime.UtcNow, DateTime.UtcNow)
{
}
public ForumProfileInfo(int profileID, int userID, int lastPostID, int postCount, int rankID, DateTime createdOn, DateTime updatedOn)
{
_profileID = profileID;
_userID = userID;
_lastPostID = lastPostID;
_postCount = postCount;
_rankID = rankID;
_createdOn = createdOn;
_updatedOn = updatedOn;
}
#endregion
#region Properties
public int ProfileID
{
get
{
return _profileID;
}
set
{
_profileID = value;
}
}
public int UserID
{
get
{
return _userID;
}
set
{
_userID = value;
}
}
public UserInfo User
{
get
{
return UserManager.Instance.GetUser(UserID);
}
}
public int LastPostID
{
get
{
return _lastPostID;
}
set
{
_lastPostID = value;
}
}
public ForumPostInfo LastPost
{
get
{
return ForumPostManager.Instance.GetForumPost(LastPostID);
}
}
public int PostCount
{
get
{
return _postCount;
}
set
{
_postCount = value;
}
}
public int RankID
{
get
{
return _rankID;
}
set
{
_rankID = value;
}
}
public ForumRankInfo Rank
{
get
{
return ForumRankManager.Instance.GetForumRank(RankID);
}
}
public DateTime CreatedOn
{
get
{
return _createdOn;
}
set
{
_createdOn = value;
}
}
public DateTime UpdatedOn
{
get
{
return _updatedOn;
}
set
{
_updatedOn = value;
}
}
public ForumTopicInfoCollection Topics
{
get
{
return ForumTopicManager.Instance.GetForumTopicsByAuthorID(UserID, true);
}
}
public ForumPostInfoCollection Posts
{
get
{
return ForumPostManager.Instance.GetForumPostsByAuthorID(UserID, true);
}
}
public ForumBanInfoCollection Bans
{
get
{
return ForumBanManager.Instance.GetForumBansByUserID(UserID);
}
}
#endregion
}
}