EnVisageOnline/Main/Source/TimeTracker/WebSites/TimeTracker1/App_Code/BLL/Team.cs

190 lines
5.6 KiB
C#

using System;
using System.Collections;
using ASPNET.StarterKit.DataAccessLayer;
using System.Collections.Generic;
using System.IO;
using FileHelpers;
using System.Web;
using Telerik.Web.UI;
namespace ASPNET.StarterKit.BusinessLogicLayer
{
public class Team
{
private int _Id;
private MembershipAppUser _ManagerUser;
private string _Name;
private List<MembershipAppUser> _Members;
public Team(string name, MembershipAppUser owner)
: this(name, owner, new List<MembershipAppUser>(), DefaultValues.GetMinTeamID())
{
}
public Team(string name, MembershipAppUser owner,List<MembershipAppUser> members, int id)
{
// Validate Mandatory Fields//
if (owner == null)
throw (new NullReferenceException("owner"));
if (String.IsNullOrEmpty(name))
throw (new NullReferenceException("name"));
_Id = id;
_ManagerUser = owner;
_Name = name;
_Members = members;
}
/*** PROPERTIES ***/
public int Id
{
get { return _Id; }
}
public string ManagerUserName
{
get
{
if (_ManagerUser == null)
return string.Empty;
else
return _ManagerUser.UserName;
}
}
public Guid ManagerUserId
{
get
{
if (_ManagerUser == null)
return Guid.Empty;
else
return _ManagerUser.UserID;
}
}
public string Name
{
get
{
if (String.IsNullOrEmpty(_Name))
return string.Empty;
else
return _Name;
}
set { _Name = value; }
}
public List<MembershipAppUser> Members { get { return this._Members; } }
/*** METHODS ***/
public bool Delete()
{
if (this.Id > DefaultValues.GetTimeEntryIdMinValue())
{
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return DALLayer.DeleteTeam(this.Id);
}
else
return false;
}
public bool Save()
{
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
if (Id <= DefaultValues.GetTimeEntryIdMinValue())
{
int TempId = DALLayer.CreateNewTeam(this);
if (TempId > DefaultValues.GetTimeEntryIdMinValue())
{
_Id = TempId;
return true;
}
else
return false;
}
else
return (DALLayer.UpdateTeam(this));
}
/*** METHOD STATIC ***/
public static bool AddUserToTeam(int TeamId, string userName, int role)
{
if (TeamId <= DefaultValues.GetMinTeamID())
throw (new ArgumentOutOfRangeException("TeamId"));
if (String.IsNullOrEmpty(userName))
throw (new NullReferenceException("userName"));
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.AddUserToTeam(TeamId, userName, role));
}
public static bool DeleteTeam(int Id)
{
if (Id <= DefaultValues.GetMinTeamID())
throw (new ArgumentOutOfRangeException("Id"));
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.DeleteTeam(Id));
}
public static List<Team> GetAllTeams()
{
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.GetAllTeams());
}
public static Team GetTeamById(int Id)
{
if (Id <= DefaultValues.GetMinTeamID())
return (null);
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.GetTeamById(Id));
}
public static List<Team> GetTeamsByManagerUserName(string userName)
{
if (String.IsNullOrEmpty(userName))
return (new List<Team>());
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
List<Team> teams = DALLayer.GetTeamsByManagerUserName(userName);
return teams;
}
public static List<MembershipAppUser> GetTeamMembers(int Id)
{
if (Id <= DefaultValues.GetMinTeamID())
return (new List<MembershipAppUser>());
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.GetTeamMembers(Id));
}
public static List<MembershipAppUser> GetTeamMembersByManager(string ManagerName)
{
if (string.IsNullOrEmpty(ManagerName))
return (new List<MembershipAppUser>());
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.GetTeamMembersByManager(ManagerName));
}
public static bool RemoveUserFromTeam(int teamId, string userName)
{
if (teamId <= DefaultValues.GetMinTeamID())
throw (new ArgumentOutOfRangeException("teamId"));
if (String.IsNullOrEmpty(userName))
throw (new NullReferenceException("userName"));
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.RemoveUserFromTeam(teamId, userName));
}
}
}