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 _Members; public Team(string name, MembershipAppUser owner) : this(name, owner, new List(), DefaultValues.GetMinTeamID()) { } public Team(string name, MembershipAppUser owner,List 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 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 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 GetTeamsByManagerUserName(string userName) { if (String.IsNullOrEmpty(userName)) return (new List()); DataAccess DALLayer = DataAccessHelper.GetDataAccess(); List teams = DALLayer.GetTeamsByManagerUserName(userName); return teams; } public static List GetTeamMembers(int Id) { if (Id <= DefaultValues.GetMinTeamID()) return (new List()); DataAccess DALLayer = DataAccessHelper.GetDataAccess(); return (DALLayer.GetTeamMembers(Id)); } public static List GetTeamMembersByManager(string ManagerName) { if (string.IsNullOrEmpty(ManagerName)) return (new List()); 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)); } } }