예제 #1
0
        public IWeekJobsResultModel GetJobsForWeek(IWeekPlanFilterModel filter)
        {
            IEnumerable <IWeekPlanListViewModel> jobs = Enumerable.Empty <IWeekPlanListViewModel>();

            IWeekPlanGridModel model = GetWeekPlanGridModel(filter);

            if (filter.MemberIds.HasValue())
            {
                var allowedDayAssignIds = dayAssignService.GetDayAssignIds(filter.Map <ITaskDataFilterModel>()).ToList();
                jobs = GetListViewModel(model, filter.JobState)
                       .Where(x => x.DayAssignId.HasValue && allowedDayAssignIds.Contains(x.DayAssignId.Value));
            }
            else
            {
                jobs = GetListViewModel(model, filter.JobState);
            }

            List <IWeekPlanListViewModel> orderedJobList = jobs.OrderByDescending(x => x.AssignDate).ToList();

            filter.Week = filter.Week > default(int) ? --filter.Week : default(int);

            int previousNotEmptyWeekNumber = jobService.GetPreviousNotEmptyWeekNumber(filter);

            return(new WeekJobsResultModel
            {
                Jobs = orderedJobList,
                IsAllowedPreviousWeeks = orderedJobList.Any() && previousNotEmptyWeekNumber > default(int),
                PreviousNotEmptyWeekNumber = previousNotEmptyWeekNumber
            });
        }
예제 #2
0
        private IEnumerable <IWeekPlanListViewModel> GetListViewModel(IWeekPlanGridModel weekPlanModel, JobStateType jobState)
        {
            IEnumerable <IWeekPlanJobModel> weekPlanJobList = weekPlanModel.BackLogJobs.Concat(weekPlanModel.WeekJobs);

            foreach (var job in weekPlanJobList)
            {
                //TODO Replace IsAllowedJobForCurrentTab
                if (IsAllowedJobForCurrentTab(job, jobState))
                {
                    yield return(new WeekPlanListViewModel
                    {
                        Id = job.Id,
                        Title = job.Title,
                        StatusId = job.StatusId,
                        AssignDate = GetJobAssignDate(job),
                        DayAssignId = job.DayAssignId,
                        GroupName = job.GroupName,
                        DepartmentName = job.DepartmentName,
                        Users = job.Users,
                        JobType = job.JobType,
                        Address = job.Address,
                        TimeDate = job.DayAssignDate,
                        IsAssignedToAllUsers = job.IsAssignedToAllUsers,
                        SpentTime = job.SpentTime,
                        EstimatedTime = job.Estimate,
                        WeekDay = GetWeekDay(job),
                        WeekNumber = job.WeekNumber,
                        HasChangeStatusComment = job.IsCommentExistOnAnyStatus,
                        IsUrgent = job.IsUrgent
                    });
                }
            }
        }