public TaskApplicantsReponse GetTaskApplicantsForApproval(int selectedTaskTypeId, int currentPageIndex, int recordsCount) { var start = DateTime.Now; var response = new TaskApplicantsReponse(); var taskApprovals = new List <TaskApproval>(); var totalRecords = 0; IEnumerable <task> dbTaskApprovals; //If Admin - TBD after usercontext module //if (!true) var user = _commonService.GetCurrentUserContext(); dbTaskApprovals = _requestorRepository.GetTaskApplicantsForApproval(selectedTaskTypeId, currentPageIndex, recordsCount, user.EmailId, out totalRecords); foreach (var dbTaskApproval in dbTaskApprovals) { var taskApproval = new TaskApproval(); taskApproval.Task = _taskModelFactory.CreateModel <Models.ResponseModels.Task.Task>(dbTaskApproval); taskApproval.Applicants = new List <Models.ResponseModels.Contributor.Contributor>(); taskApproval.TaskApplicantId = dbTaskApproval.ID; foreach (var dbApplicant in dbTaskApproval.taskapplicants) { if (dbApplicant.STATUS == ApplicantStatus.ManagerApproved.ToString()) { var applicant = _taskApplicantModelFactory.CreateModel <Models.ResponseModels.Contributor.Contributor>(dbApplicant); applicant.TopRatingsCount = _taskRepository.GetTopRatingCountOnEmailId(applicant.EmailId); applicant.Expertise = ConvertSkillsToString(_userRepository.GetSkillsByUserId(applicant.ApplicantId)); applicant.StatementOfPurpose = dbApplicant.STATEMENT_OF_PURPOSE ?? string.Empty; applicant.Comments = _taskRepository .GetAllCommentsOnEmailId(applicant.EmailId) .Select(x => new ManagerComments { ManagerId = x.Key, Comment = x.Value }) ?.ToList(); taskApproval.Applicants.Add(applicant); } } taskApprovals.Add(taskApproval); } response.TaskApprovals = taskApprovals; response.TotalRecords = totalRecords; var end = DateTime.Now - start; return(response); }
public IEnumerable <TaskHistory> GetTaskHistory() { var tasksHistory = new List <TaskHistory>(); var user = _commonService.GetCurrentUserContext(); var dbapprovedapplicants = _contributorRepository.GetTaskStatus(user.UserId); foreach (var dbapprovedapplicant in dbapprovedapplicants) { var task = new TaskHistory(); task.Task = _taskModelFactory.CreateModel <DCode.Models.ResponseModels.Task.Task>(dbapprovedapplicant.task); task.Applicant = _approvedApplicantModelFactory.CreateModel <ContributorSummary>(dbapprovedapplicant); tasksHistory.Add(task); } return(tasksHistory); }
public int UpsertTask(TaskRequest taskRequest) { var result = 0; if (taskRequest.ActionType == ActionType.Insert) { taskRequest.WBSCode = string.IsNullOrWhiteSpace(taskRequest.WBSCode) ? "WBS00000-00-00-00-0000" : taskRequest.WBSCode; var dbTask = _taskModelFactory.CreateModel <TaskRequest>(taskRequest); MapAuditFields <task>(ActionType.Insert, dbTask); if (taskRequest.SelectedTaskType == "2" || taskRequest.SelectedTaskType == "3") { if (taskRequest.SkillSet == null || !taskRequest.SkillSet.Any()) { var listOfSkills = new List <int>(); var skillName = taskRequest.SelectedTaskType == "2" ? Constants.FirmInitiativeSkillRecord : Constants.IndustryInitiativeSkillRecord; var matchedSkill = _taskRepository.GetSkillByName(skillName); listOfSkills.Add(matchedSkill != null ? matchedSkill.ID : default(int)); taskRequest.SkillSet = listOfSkills; } } var dbTaskSkills = _taskSkillModelFactory.CreateModelList(taskRequest.SkillSet); foreach (var dbTaskSkill in dbTaskSkills) { MapAuditFields <taskskill>(ActionType.Insert, dbTaskSkill); } result = _taskRepository.InsertTask(dbTask, dbTaskSkills); if (taskRequest.SelectedTaskType == "2" && result == 2) { var currentUser = _commonService.GetCurrentUserContext(); var offeringRecipients = _commonService.GetFINotificationRecipientsForOffering( Convert.ToInt32(taskRequest.SelectedOffering)); offeringRecipients = offeringRecipients != null && offeringRecipients.Any() ? offeringRecipients : _commonService.GetDefaultConsultingMailboxes(); var offering = _commonService.GetOfferings() .Where(x => x.Id == Convert.ToInt32(taskRequest.SelectedOffering)) .Select(x => x.Description) .FirstOrDefault(); var mailMessage = EmailHelper.PostNewFINotification(taskRequest.ProjectName, taskRequest.Hours.ToString(), taskRequest.Description, taskRequest.OnBoardingDate, currentUser.EmailId, offeringRecipients, offering); var emailTracker = new EmailTracker { ToAddresses = ConfigurationManager.AppSettings["DcodeEmailId"], Subject = mailMessage.Subject, Body = mailMessage.Body, TaskId = taskRequest.Id, Source = ApplicationSource.WebApp.ToString() }; if (currentUser.EmailId != null) { emailTracker.CcAddresses.Add(currentUser.EmailId); } if (offeringRecipients != null && offeringRecipients.Any()) { emailTracker.BccAddresses.AddRange(offeringRecipients); } _emailTrackerService.InsertEmail(emailTracker); } } else if (taskRequest.ActionType == ActionType.Update) { var dbTask = _taskModelFactory.CreateModel <TaskRequest>(taskRequest); MapAuditFields <task>(ActionType.Update, dbTask); result = _taskRepository.UpdateTask(dbTask); } return(result); }