コード例 #1
0
        public async Task <CreateOperationalTaskViewModel> CreateAdHocTask(IOperationalTaskModel model)
        {
            model.JobId = await taskIdGenerator.AdHoc();

            var addressList = new List <JobAddress>();

            addressList.Add(new JobAddress {
                HousingDepartmentId = model.DepartmentId, Address = model.Address
            });
            await messageBus.Publish(new CreateJobCommand(model.JobId, model.CategoryId, model.Title, JobTypeEnum.AdHock, model.CreatorId, RoleType.Coordinator, addressList, null, null));

            var jobAssignId = Guid.NewGuid();
            CreateOperationalTaskAssignCommand adHockAssignCommand = GetCreateOperationalTaskAssignCommand(model, model.JobId, jobAssignId);
            await messageBus.Publish(adHockAssignCommand);

            var dayAssignId = Guid.NewGuid();
            CreateDayAssignCommand dayAssign = GetCreateDayAssignCommand(model, dayAssignId, jobAssignId);
            await messageBus.Publish(dayAssign);

            await SetStatusAfterCreation(dayAssignId, model.TeamLeadId);

            CreateOperationalTaskViewModel result = new CreateOperationalTaskViewModel
            {
                Id           = model.JobId,
                DayAssignId  = dayAssignId,
                DepartmentId = model.DepartmentId
            };

            return(result);
        }
コード例 #2
0
        private CreateDayAssignCommand GetCreateDayAssignCommand(IOperationalTaskModel model, Guid assignId, Guid jobAssignId, int weekNumber)
        {
            DateTime assignedDate = GetAssignedDate(model.Date.Value, model.Time.Value);
            var      dayOfWeek    = assignedDate.GetWeekDayNumber();

            var result = new CreateDayAssignCommand(assignId, model.JobId, jobAssignId, assignedDate)
            {
                EstimatedMinutes     = (int?)model.Estimate,
                DepartmentId         = model.DepartmentId,
                GroupId              = model.GroupId,
                UserIdList           = model.UserIdList.ToList(),
                Address              = model.Address,
                StatusId             = JobStatus.Pending,
                WeekNumber           = weekNumber,
                TeamLeadId           = model.TeamLeadId,
                IsAssignedToAllUsers = model.IsAssignedToAllUsers,
                WeekDay              = dayOfWeek,
                Comment              = model.Comment,
                ResidentName         = model.ResidentName,
                ResidentPhone        = model.ResidentPhone,
                Type     = model.Type,
                IsUrgent = model.IsUrgent
            };

            return(result);
        }
コード例 #3
0
        public async Task <CreateOperationalTaskViewModel> CreateOtherTask(IOperationalTaskModel model)
        {
            int weekNumber = CalendarHelper.GetWeekNumber(model.Date.Value);

            model.JobId = await taskIdGenerator.Other();

            var addressList = new List <JobAddress>();

            addressList.Add(new JobAddress {
                HousingDepartmentId = model.DepartmentId, Address = model.Address
            });
            await messageBus.Publish(new CreateJobCommand(model.JobId, Guid.Empty, model.Title, JobTypeEnum.Other, model.CreatorId, RoleType.Coordinator, addressList, null, null));

            var jobAssignId = Guid.NewGuid();
            CreateOperationalTaskAssignCommand tenantkAssignCommand = GetCreateOperationalTaskAssignCommand(model, model.JobId, jobAssignId, weekNumber);
            await messageBus.Publish(tenantkAssignCommand);

            var dayAssignId = Guid.NewGuid();
            CreateDayAssignCommand dayAssign = GetCreateDayAssignCommand(model, dayAssignId, jobAssignId, weekNumber);
            await messageBus.Publish(dayAssign);

            await SetStatusAfterCreation(dayAssignId, model.TeamLeadId);

            CreateOperationalTaskViewModel result = new CreateOperationalTaskViewModel
            {
                Id           = model.JobId,
                DepartmentId = model.DepartmentId,
                DayAssignId  = dayAssignId
            };

            return(result);
        }
コード例 #4
0
        private CreateDayAssignCommand GetCreateDayAssignCommand(IOperationalTaskModel model, Guid assignId, Guid jobAssignId)
        {
            var dayOfWeek = model.Date.Value.GetWeekDayNumber();
            var result    = new CreateDayAssignCommand(assignId, model.JobId, jobAssignId, model.Date)
            {
                EstimatedMinutes     = (int?)model.Estimate,
                DepartmentId         = model.DepartmentId,
                GroupId              = model.GroupId,
                UserIdList           = model.UserIdList.ToList(),
                Address              = model.Address,
                StatusId             = JobStatus.Pending,
                WeekNumber           = CalendarHelper.GetWeekNumber(model.Date.Value),
                WeekDay              = dayOfWeek,
                TeamLeadId           = model.TeamLeadId,
                IsAssignedToAllUsers = model.IsAssignedToAllUsers
            };

            return(result);
        }