/// <summary> /// Task mail fetails for admin or employee /// </summary> /// <param name="userId"></param> /// <param name="userName"></param> /// <param name="role"></param> /// <param name="createdOn"></param> /// <param name="loginId"></param> /// <param name="selectedDate"></param> /// <returns>list of task mail reports</returns> private async Task <List <TaskMailReportAc> > TaskMailsDetailAsync(string userId, string userName, string role, string createdOn, string loginId, DateTime selectedDate) { _logger.Debug("Task Mail Detail Async created on" + createdOn); _logger.Debug("Task Mail Detail Async selected date" + selectedDate); List <TaskMailReportAc> taskMailReportAcList = new List <TaskMailReportAc>(); //find maximum and minimum date from the employee task mails IEnumerable <TaskMail> taskMails = (await _taskMailRepository.FetchAsync(x => x.EmployeeId == userId)).ToList(); DateTime maxDate, minDate; if (taskMails.Any()) { maxDate = taskMails.Max(x => x.CreatedOn); minDate = taskMails.Min(x => x.CreatedOn); } else { maxDate = selectedDate; minDate = selectedDate; } //getting task mail information. TaskMailReportAc taskMailReportAc = await GetTaskReportAsync(userId, role, userName, selectedDate.Date, maxDate.Date, minDate.Date); taskMailReportAcList.Add(taskMailReportAc); return(taskMailReportAcList); }
/// <summary> /// Get default task mail /// </summary> /// <param name="userId"></param> /// <param name="role"></param> /// <param name="userName"></param> /// <param name="createdOn"></param> /// <param name="maxDate"></param> /// <param name="minDate"></param> /// <returns>Task mail report</returns> private TaskMailReportAc GetTaskMailReport(string userId, string role, string userName, DateTime createdOn, DateTime maxDate, DateTime minDate) { List <TaskMailDetailReportAc> taskMailDetailReportList = new List <TaskMailDetailReportAc>(); var taskMailDetailReportAc = new TaskMailDetailReportAc(description: _stringConstant.NotAvailable, comment: _stringConstant.NotAvailable, status: TaskMailStatus.none); taskMailDetailReportList.Add(taskMailDetailReportAc); TaskMailReportAc taskMailReportAc = new TaskMailReportAc(userId, role, userName, taskMailDetailReportList, createdOn: createdOn, maxDate: maxDate, minDate: minDate); return(taskMailReportAc); }
/// <summary> /// Task mail details for teamLeader /// </summary> /// <param name="role"></param> /// <param name="loginId"></param> /// <param name="selectedDate"></param> /// <param name="maxDate"></param> /// <param name="minDate"></param> /// <returns>list of task mail reports</returns> private async Task <List <TaskMailReportAc> > TaskMailDetailsAsync(string role, string loginId, DateTime selectedDate, DateTime maxDate, DateTime minDate) { List <TaskMailReportAc> taskMailReportAcList = new List <TaskMailReportAc>(); List <UserRoleAc> userRoleAcList = await GetUserRoleAsync(loginId); //getting the team members task mails using users information. foreach (var userRole in userRoleAcList) { TaskMailReportAc taskMailReportAc = await GetTaskReportAsync(userRole.UserId, role, userRole.Name, selectedDate, maxDate, minDate); taskMailReportAcList.Add(taskMailReportAc); } return(taskMailReportAcList); }
/// <summary> /// Getting taskmail details infromation /// </summary> /// <param name="userId"></param> /// <param name="role"></param> /// <param name="userName"></param> /// <param name="taskId"></param> /// <param name="createdOn"></param> /// <param name="maxDate"></param> /// <param name="minDate"></param> /// <returns>List of task mail report</returns> private async Task <TaskMailReportAc> GetTaskMailReportAsync(string userId, string role, string userName, int taskId, DateTime createdOn, DateTime maxDate, DateTime minDate) { List <TaskMailDetailReportAc> taskMailDetailReportAcList = new List <TaskMailDetailReportAc>(); // getting taskmail details infromation using taskId. var taskMailDetailList = (await _taskMailDetailRepository.FetchAsync(x => x.TaskId == taskId)); foreach (var taskMailDetail in taskMailDetailList) { TaskMailDetailReportAc taskmailReportAc = new TaskMailDetailReportAc(taskMailDetail.Description, taskMailDetail.Comment, id: taskMailDetail.Id, hours: taskMailDetail.Hours, status: taskMailDetail.Status); taskMailDetailReportAcList.Add(taskmailReportAc); } TaskMailReportAc taskMailReportAc = new TaskMailReportAc(userId, role, userName, taskMailDetailReportAcList, createdOn: createdOn, maxDate: maxDate, minDate: minDate); return(taskMailReportAc); }
/// <summary> ///Method geting Employee or list of Employees /// </summary> /// <param name="userId"></param> /// <returns>list of task mail report</returns> public async Task <List <TaskMailReportAc> > GetUserInformationAsync(string userId) { List <TaskMailReportAc> taskMailReportAcList = new List <TaskMailReportAc>(); var user = await _userRepository.FirstAsync(x => x.Id == userId); //getting user information from Promact Oauth Server. _logger.Info("Getting user information from oauth server"); List <UserRoleAc> userRoleAcList = await _oauthCallsRepository.GetUserRoleAsync(user.Id); var userInformation = userRoleAcList.First(x => x.UserName == user.UserName); if (userInformation.Role == _stringConstant.RoleAdmin) { //if user is admin then remove from user list. because admin dose not have any taks mail. userRoleAcList.Remove(userInformation); } foreach (var userRole in userRoleAcList) { TaskMailReportAc taskMailReportAc = new TaskMailReportAc(userRole.UserId, userRole.Role, userRole.Name, userEmail: userRole.UserName); taskMailReportAcList.Add(taskMailReportAc); } _logger.Debug("Task Report List"); return(taskMailReportAcList); }