using System;
using System.Data;
using ASPNET.StarterKit.TimeTracker.DataAccessLayer;
using System.Configuration;

namespace ASPNET.StarterKit.TimeTracker.BusinessLogicLayer
{
	//*********************************************************************
	//
	//	ResourceReportUser Class
	//
	//	This class represents User summary in Resource Report page
	//
	//*********************************************************************

	public class ResourceReportUser
	{
		private string	_fullName;
		private int		_userID;
		private string	_userName;
		private decimal _totalHours;

		public ResourceReportUser()
		{
			_userID = 0;
			_userName = string.Empty;
			_totalHours = 0M;
			_fullName = string.Empty;
		}

		public string FullName
		{
			get { return _fullName; }
			set { _fullName = value; }
		}
		
		public int UserID 
		{
			get {return _userID;}
			set { _userID = value; }
		}

		public string UserName 
		{
			get { return _userName; }
			set { _userName = value; }
		}

		public decimal TotalHours
		{
			get { return _totalHours; }
			set { _totalHours = value; }
		}

		//*********************************************************************
		//
		// GetUserSummary retrieves multiple user summaries and returns them in a collection.
		// userIdList is a comma delimited UserIDs string (i.e. "1,2,3").
		//
		//*********************************************************************

		public static ResourceReportUserCollection GetUserSummary(int mgrUserID, string userIdList, DateTime startDate, DateTime endDate)
		{
			DataSet dsUsers = SqlHelper.ExecuteDataset(ConfigurationSettings.AppSettings[Web.Global.CfgKeyConnString], 
				"TT_ListUserTimeSummary", mgrUserID, userIdList, startDate, endDate);
			ResourceReportUserCollection userList = new ResourceReportUserCollection();
			
			// Create a reference to display full name.
			string firstName = string.Empty;
			string lastName = string.Empty;

			// Separate Data into a collection of ResourceReportUser
			foreach(DataRow row in dsUsers.Tables[0].Rows)
			{
				ResourceReportUser usr = new ResourceReportUser();
				usr.UserID = Convert.ToInt32(row["UserID"]);
				usr.UserName = row["UserName"].ToString();
				usr.TotalHours = Convert.ToDecimal(row["TotalHours"]);
				usr.FullName = TTUser.GetDisplayName(usr.UserName, ref firstName, ref lastName);
		
				userList.Add(usr);
			}
			return userList;
		}
	}
}
