/// <summary>
 /// Retrieves the team engagement developer project list.
 /// </summary>
 /// <param name="developerId">The developer id value</param>
 /// <param name="projectIds">The list of project ids.</param>
 /// <param name="fromDate">The from date.</param>
 /// <param name="toDate">The to date.</param>
 /// <returns>list of team engagement project list.</returns>
 public IList<TeamEngagementProjectListItemByDeveloper> RetrieveDeveloperProjectList(int developerId, IList<int> projectIds, DateTime? fromDate, DateTime? toDate)
 {
     return this.unitOfWork.Context.RetrieveTeamEngagementProjectListByDeveloper(developerId, projectIds.MapToString(), fromDate, toDate).ToList();
 }
 /// <summary>
 /// Retrieves the hours availability.
 /// </summary>
 /// <param name="developerIds">The developer ids.</param>
 /// <param name="fromDate">From date.</param>
 /// <param name="toDate">To date.</param>
 /// <param name="projectId">The project identifier.</param>
 /// <param name="isIncludeHoliday">if set to <c>true</c> [is include holiday].</param>
 /// <param name="userId">The user identifier.</param>
 /// <returns>Hour availability list item.</returns>
 public HoursAvailabilityListItem RetrieveHoursAvailability(IList<int> developerIds, DateTime? fromDate, DateTime? toDate, int projectId, bool isIncludeHoliday, int userId)
 {
     return this.unitOfWork.Context.RetrieveHoursAvailability(developerIds.MapToString(), fromDate, toDate, projectId, isIncludeHoliday, userId).FirstOrDefault();
 }
 /// <summary>
 /// Retrieves the team engagement developer list.
 /// </summary>
 /// <param name="managerIds">List of manager ids</param>
 /// <param name="projectIds">List of project ids</param>
 /// <param name="fromDate">From date value</param>
 /// <param name="toDate">The to date.</param>
 /// <param name="userId">The user identifier.</param>
 /// <returns>
 /// list of team engagement developers
 /// </returns>
 public IList<TeamEngagementDeveloperListItem> RetrieveDeveloperList(IList<int> managerIds, IList<int> projectIds, DateTime? fromDate, DateTime? toDate, int? userId)
 {
     return this.unitOfWork.Context.RetrieveTeamEngagementDeveloperList(managerIds.MapToString(), projectIds.MapToString(), fromDate, toDate, userId).ToList();
 }
 /// <summary>
 /// Function to retrieve report for team member assignments.
 /// </summary>
 /// <param name="projectIds">The project ids.</param>
 /// <param name="developerName">The developer name.</param>
 /// <param name="roleIds">The role ids</param>
 /// <param name="userId">The user id.</param>
 /// <returns>The team member allocation list item.</returns>
 public IList<TeamMemberAssignmentsReportListItem> RetrieveTeamMemberAssignments(string projectIds, string developerName, IList<int> roleIds, int userId)
 {
     return this.unitOfWork.Context.RetrieveTeamMemberAssignmentsReport(projectIds, developerName, roleIds.MapToString(), userId).ToList();
 }
 /// <summary>
 /// Function to retrieve team engagement count.
 /// </summary>
 /// <param name="developerId">The developer id.</param>
 /// <param name="fromDate">The from date.</param>
 /// <param name="toDate">The to date.</param>
 /// <param name="projectIds">The list of project ids.</param>
 /// <param name="isIncludeOffDays">Value indicating whether to include off days or not</param>
 /// <param name="isOverride">Value indicating whether to override or not</param>
 /// <param name="userId">The user id.</param>
 /// <returns>
 /// The team engagement summary list item.
 /// </returns>
 public TeamEngagementSummaryListItem RetrieveCount(IList<int> developerId, DateTime fromDate, DateTime toDate, IList<int> projectIds, bool isIncludeOffDays, bool isOverride, int? userId)
 {
     return this.unitOfWork.Context.RetrieveTeamEngagementCount(developerId.MapToString(), fromDate, toDate, projectIds.MapToString(), isIncludeOffDays, isOverride, userId).FirstOrDefault();
 }
 /// <summary>
 /// Function to retrieve developer information with manager information by id .
 /// </summary>
 /// <param name="developerIds">Developer id value</param>
 /// <param name="userId">The user identifier.</param>
 /// <returns>
 /// Developer information
 /// </returns>
 public DeveloperListItem RetrieveWithManagerInfo(IList<int> developerIds, int userId)
 {
     return this.unitOfWork.Context.RetrieveDeveloperHierarchyByManagerID(null, null, developerIds.MapToString(), userId).FirstOrDefault();
 }
 /// <summary>
 /// Retrieves the team portal task.
 /// </summary>
 /// <param name="projectIds">The project ids.</param>
 /// <param name="developerId">The developer identifier.</param>
 /// <param name="recordCount">The record count.</param>
 /// <param name="state">The state.</param>
 /// <returns>
 /// List of tasks
 /// </returns>
 public IList<TeamPortalTask> RetrieveTeamPortalTask(IList<int> projectIds, int? developerId, int? recordCount, int? state)
 {
     return this.unitOfWork.Context.RetrieveTeamPortalTask(projectIds.MapToString(), developerId, recordCount, state).ToList();
 }
 /// <summary>
 /// Retrieves the daily report.
 /// </summary>
 /// <param name="fromDate">From date.</param>
 /// <param name="toDate">To date.</param>
 /// <param name="clientId">The client identifier.</param>
 /// <param name="developerIds">The developer ids.</param>
 /// <param name="projectIds">The project ids.</param>
 /// <param name="workCategoryId">The work category identifier.</param>
 /// <param name="showClientDependencies">The show client dependencies.</param>
 /// <param name="featureId">The feature identifier.</param>
 /// <param name="userId">The user identifier.</param>
 /// <param name="supervisorIds">The supervisor ids.</param>
 /// <param name="isCalibratedHours">if set to <c>true</c> [is calibrated hours].</param>
 /// <param name="showRework">The show rework.</param>
 /// <returns>
 /// The list of work detail
 /// </returns>
 public IList<WorkDetailListItem> RetrieveDailyReport(DateTime fromDate, DateTime toDate, int? clientId, IList<int> developerIds, string projectIds, int? workCategoryId, byte? showClientDependencies, string featureId, int userId, IList<int> supervisorIds, bool isCalibratedHours, byte? showRework)
 {
     return this.unitOfWork.Context.RetrieveTimesheetDailyReport(fromDate, toDate, clientId, workCategoryId, developerIds.MapToString(), projectIds, showClientDependencies, featureId, userId, supervisorIds.MapToString(), isCalibratedHours, showRework).ToList();
 }
 /// <summary>
 /// Retrieves the activity report project view.
 /// </summary>
 /// <param name="projectIds">The project ids.</param>
 /// <param name="supervisorIds">The supervisor ids.</param>
 /// <param name="fromDate">From date.</param>
 /// <param name="toDate">To date.</param>
 /// <param name="userId">The user identifier.</param>
 /// <returns>The activity report project list item</returns>
 public IList<ActivityReportProjectViewListItem> RetrieveActivityReportByProjectView(string projectIds, IList<int> supervisorIds, DateTime fromDate, DateTime toDate, int userId)
 {
     return this.unitOfWork.Context.RetrieveActivityReportProjectView(projectIds, supervisorIds.MapToString(), fromDate, toDate, userId).ToList();
 }
 /// <summary>
 /// Function to update due date for project artifacts.
 /// </summary>
 /// <param name="projectArtifactIds">List of project artifact list.</param>
 /// <param name="dueDate">The due date.</param>
 /// <param name="modifiedByDeveloperId">The modified by developer id.</param>
 public void UpdateDueDate(IList<int> projectArtifactIds, DateTime dueDate, int modifiedByDeveloperId)
 {
     this.unitOfWork.Context.UpdateProjectArtifactDueDate(projectArtifactIds.MapToString(), dueDate, modifiedByDeveloperId);
 }
 /// <summary>
 /// Function to retrieve release calendar count.
 /// </summary>
 /// <param name="releaseTypes">releaseType details</param>
 /// <param name="projectIds">projectIDs details</param>
 /// <param name="fromDate">fromDate details</param>
 /// <param name="toDate">toDate details</param>
 /// <param name="userId">The user id.</param>
 /// <returns>integer count</returns>
 public IList<ReleaseCountListItem> RetrieveReleaseCount(IList<byte> releaseTypes, IList<int> projectIds, DateTime? fromDate, DateTime? toDate, int userId)
 {
     return this.unitOfWork.Context.RetrieveReleasesCount(releaseTypes.MapToString(), projectIds.MapToString(), fromDate, toDate, userId).ToList();
 }
 /// <summary>
 /// Function to retrieve process compliance list.
 /// </summary>
 /// <param name="projectId">Project id</param>
 /// <param name="releaseEnvironmentList">Release environments</param>
 /// <param name="artifactStatusList">Artifacts status list</param>
 /// <param name="userId">User id value</param>
 /// <returns>Release information</returns>
 public IList<ProcessComplianceListItem> RetrieveList(int projectId, IList<int> releaseEnvironmentList, IList<int> artifactStatusList, int userId)
 {
     return this.unitOfWork.Context.RetrieveProcessComplianceList(projectId, releaseEnvironmentList.MapToString(), artifactStatusList.MapToString(), userId).ToList();
 }
 /// <summary>
 /// Function to retrieve developer bugs.
 /// </summary>
 /// <param name="projectIds">List of project ids.</param>
 /// <param name="developerId">The developer Id.</param>
 /// <param name="count">The record count.</param>
 /// <returns>List of developer bugs list.</returns>
 public IList<DeveloperBugsListItem> RetrieveDeveloperBugs(IList<int> projectIds, int developerId, int? count)
 {
     return this.unitOfWork.Context.RetrieveDeveloperBugs(projectIds.MapToString(), developerId, count).ToList();
 }
 /// <summary>
 /// Function to retrieve list of managers.
 /// </summary>
 /// <param name="includeIds">List of include ids.</param>
 /// <param name="isActive">Is active flag.</param>
 /// <param name="userId">The user identifier.</param>
 /// <returns>
 /// List of managers
 /// </returns>
 public IList<DeveloperListItem> RetrieveManagers(IList<int> includeIds, bool? isActive, int userId)
 {
     return this.unitOfWork.Context.RetrieveManagers(includeIds.MapToString(), isActive, userId).ToList();
 }
 /// <summary>
 /// Function to save team engagement.
 /// </summary>
 /// <param name="developerIds">The developer id list.</param>
 /// <param name="projectId">The project id.</param>
 /// <param name="fromDate">The from date.</param>
 /// <param name="toDate">The to date.</param>
 /// <param name="hours">The hours.</param>
 /// <param name="modifiedByDeveloperId">The modified by developer id.</param>
 /// <param name="includeOffDays">Value indicating whether to include off days or not</param>
 /// <param name="isOverride">Value indicating whether to override or not</param>
 /// <param name="isUnderHierarchy">if set to <c>true</c> [is under hierarchy].</param>
 /// <returns>
 /// List of error list item.
 /// </returns>
 public IList<ErrorListItem> Save(IList<int> developerIds, int projectId, DateTime fromDate, DateTime toDate, decimal hours, int modifiedByDeveloperId, bool includeOffDays, bool isOverride, bool isUnderHierarchy)
 {
     return this.unitOfWork.Context.SaveTeamEngagement(developerIds.MapToString(), projectId, fromDate, toDate, hours, modifiedByDeveloperId, includeOffDays, isOverride, isUnderHierarchy).ToList();
 }
 /// <summary>
 /// Function to retrieve report for productivity graph by developer.
 /// </summary>
 /// <param name="projectId">The project id.</param>
 /// <param name="fromDate">The from date.</param>
 /// <param name="toDate">The to date.</param>
 /// <param name="developerIds">The developer ids.</param>
 /// <returns>The productivity graph by developer report list items.</returns>
 public IList<ProductivityGraphByDeveloperReportListItem> RetrieveProductivityGraphByDeveloper(int projectId, DateTime fromDate, DateTime toDate, IList<int> developerIds)
 {
     return this.unitOfWork.Context.RetrieveProductivityGraphByDeveloperReport(projectId, fromDate, toDate, developerIds.MapToString()).ToList();
 }
 /// <summary>
 /// Function to retrieve team engagement list.
 /// </summary>
 /// <param name="developerId">The developer id.</param>
 /// <param name="fromDate">The from date.</param>
 /// <param name="toDate">The to date.</param>
 /// <param name="projectIds">The list of project ids.</param>
 /// <param name="userId">The user identifier.</param>
 /// <returns>
 /// The team engagement date list item.
 /// </returns>
 public IList<TeamEngagementDateListItem> RetrieveList(int developerId, DateTime fromDate, DateTime? toDate, IList<int> projectIds, int userId)
 {
     return this.unitOfWork.Context.RetrieveTeamEngagementList(developerId, fromDate, toDate, projectIds.MapToString(), userId).ToList();
 }
 /// <summary>
 /// Function to retrieve non-compliance drill down report.
 /// </summary>
 /// <param name="projectIds">The list of project ids.</param>
 /// <param name="releaseEnvironments">The list of environment ids.</param>
 /// <param name="releases">The list of release ids</param>
 /// <param name="functionalAreaList">List of functional areas</param>
 /// <param name="missedAfterDate">Missed after date</param>
 /// <param name="userId">The user identifier.</param>
 /// <returns>
 /// The non compliance drill down report list.
 /// </returns>
 public IList<NonComplianceDrillDownReportListItem> RetrieveNoncomplianceDrillDown(string projectIds, IList<int> releaseEnvironments, IList<int> releases, IList<string> functionalAreaList, DateTime? missedAfterDate, int userId)
 {
     return this.unitOfWork.Context.RetrieveNonComplianceDrillDownReport(projectIds, releaseEnvironments.MapToString(), releases.MapToString(), functionalAreaList.MapToString(), missedAfterDate, userId).ToList();
 }