Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }