예제 #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
        public IEnumerable <Guid> GetDayAssignIdsForMembers(WeekPlanTaskRequestViewModel model)
        {
            var filter = model.Map <ITaskDataFilterModel>();
            var ids    = dayAssignService.GetDayAssignIds(filter);

            return(ids);
        }