コード例 #1
0
        public async Task <FormattedJobAssignViewModel> GetJobAssigns(string jobId, UploadedContentEnum?contentType)
        {
            IMemberModel currentUser = memberService.GetCurrentUser();
            IJob         job         = await jobService.GetJobById(jobId);

            var result = new FormattedJobAssignViewModel();

            if (job.RelationGroupList.Any() && job.ParentId != null)
            {
                Guid housingDepartmentId = job.RelationGroupList.First().HousingDepartmentId;
                IEnumerable <Guid> relationGroupIdList    = job.RelationGroupList.Select(x => x.RelationGroupId).ToList();
                JobAssign          globalGroupedJobAssign = jobService.GetGlobalJobAssignForGroupedTask(job);
                List <JobAssign>   jobAssigns             = jobService.GetJobAssignList(relationGroupIdList);
                result.GlobalAssign = globalGroupedJobAssign.Map <JobAssignViewModel>();
                result.Assigns      = jobAssigns.Where(i => !i.IsGlobal && i.HousingDepartmentIdList.Contains(housingDepartmentId)).Select(i => i.Map <JobAssignViewModel>()).ToList();
                result.AddressList  = jobService.GetRelatedAddressListForHousingDepartment(relationGroupIdList, housingDepartmentId, isParent: false);
                result.IsGroupedJob = true;
                result.IsChildJob   = job.ParentId != null;
            }
            else
            {
                IFormattedJobAssign jobAssign = jobService.GetAllByJobIdFormatted(jobId, currentUser.IsAdmin() ? null : currentUser.ActiveManagementDepartmentId);
                result = Mapper.Map <FormattedJobAssignViewModel>(jobAssign);
            }

            result.CurrentUser             = currentUser;
            result.GlobalAssign.UploadList = GetUploadListModel(result.GlobalAssign.UploadList, contentType);

            foreach (var assign in result.Assigns)
            {
                assign.UploadList = GetUploadListModel(assign.UploadList, contentType);
            }

            return(result);
        }
コード例 #2
0
        public async Task <JobAssignViewModel> SaveWeekList(ChangeJobAssignWeekListModel model)
        {
            JobAssign jobAssign = await jobService.CreateOrGetJobAssign(model.AssignId, model.JobId, model.DepartmentId);

            if (!jobAssign.IsGlobal)
            {
                foreach (var week in model.WeekList)
                {
                    week.IsDisabled = week.ChangedBy == WeekChangedBy.Administrator;
                }
            }

            bool isLocalIntervalChanged = !jobAssign.IsGlobal;
            await messageBus.Publish(new ChangeJobAssignWeeksCommand(jobAssign.Id, model.WeekList, model.ChangedByRole, isLocalIntervalChanged));

            jobAssign.WeekList = model.WeekList;
            if (jobAssign.IsGlobal)
            {
                await jobService.CopyGlobalJobAssignToLocalIfLocalIntervalWasntChanged(jobAssign.Id, model.JobId, model.DepartmentId);

                await jobService.CopyParentGlobalJobAssignToChildren(jobAssign.Id, model.JobId);
            }

            managementHubs.Clients.All.refreshWeekPlanGridTasks();
            managementHubs.Clients.All.refreshWeekPlanListTasks();

            return(jobAssign.Map <JobAssignViewModel>());
        }
コード例 #3
0
        public async Task <JobAssignViewModel> LockInterval(ChangeJobAssignLockIntervalModel model)
        {
            JobAssign jobAssign = await jobService.CreateOrGetJobAssign(model.AssignId, model.JobId, model.DepartmentId);

            await messageBus.Publish(new ChangeLockIntervalValueCommand(jobAssign.Id, model.IsLocked));

            jobAssign.IsLocked = model.IsLocked;
            return(jobAssign.Map <JobAssignViewModel>());
        }
コード例 #4
0
        public async Task <JobAssignViewModel> SaveTillYear(ChangeJobAssignTillYearModel model)
        {
            JobAssign jobAssign = await jobService.CreateOrGetJobAssign(model.AssignId, model.JobId, model.DepartmentId);

            bool isLocalIntervalChanged = !jobAssign.IsGlobal;
            await messageBus.Publish(new ChangeJobAssignTillYearCommand(jobAssign.Id, model.TillYear, model.ChangedByRole, isLocalIntervalChanged));

            jobAssign.TillYear = model.TillYear;

            if (jobAssign.IsGlobal)
            {
                await jobService.CopyGlobalJobAssignToLocalIfLocalIntervalWasntChanged(jobAssign.Id, model.JobId, model.DepartmentId);

                await jobService.CopyParentGlobalJobAssignToChildren(jobAssign.Id, model.JobId);
            }

            return(jobAssign.Map <JobAssignViewModel>());
        }
コード例 #5
0
        public async Task <JobAssignViewModel> SaveJobShedule(ChangeJobSheduleModel model)
        {
            JobAssign jobAssign = await jobService.CreateOrGetJobAssign(model.AssignId, model.JobId, model.DepartmentId);

            FillCorrectDayPerWeekModel(model.DayPerWeekList, jobAssign);
            bool isLocalIntervalChanged = !jobAssign.IsGlobal;
            await messageBus.Publish(new ChangeJobAssignSheduleCommand(jobAssign.Id, model.DayPerWeekList, model.RepeatsPerWeek, model.ChangedByRole, isLocalIntervalChanged));

            jobAssign.DayPerWeekList = model.DayPerWeekList;
            jobAssign.RepeatsPerWeek = model.RepeatsPerWeek;

            if (jobAssign.IsGlobal)
            {
                await jobService.CopyGlobalJobAssignToLocalIfLocalIntervalWasntChanged(jobAssign.Id, model.JobId, model.DepartmentId);

                await jobService.CopyParentGlobalJobAssignToChildren(jobAssign.Id, model.JobId);
            }

            return(jobAssign.Map <JobAssignViewModel>());
        }