Exemplo n.º 1
0
        public async Task <IChangeStatusModel> AssignsMembersGroup(INewDayAssignModel model)
        {
            IChangeStatusModel moveToStatusResultModel = new ChangeStatusModel();

            DayAssign dayAssign = await CreateOrGetDayAssign(model);

            try
            {
                if (model.IsUnassignedAll)
                {
                    await jobStatusService.Pending(model.DayAssignId.Value, dayAssign.StatusId);
                }
                else if (dayAssign.StatusId != JobStatus.Assigned && model.TeamLeadId.HasValue)
                {
                    await jobStatusService.Assigned(dayAssign.Id, dayAssign.StatusId);
                }
                else if (dayAssign.StatusId != JobStatus.Opened && !model.TeamLeadId.HasValue)
                {
                    await jobStatusService.Opened(dayAssign.Id, dayAssign.StatusId);
                }

                model.Id = dayAssign.Id;
                await messageBus.Publish(model.Map <ChangeDayAssignMembersComand>());

                moveToStatusResultModel.IsSuccessful = true;
            }
            catch (NotImplementedException)
            {
                moveToStatusResultModel.IsSuccessful = false;
            }

            moveToStatusResultModel.DayAssignId = dayAssign.Id;
            return(moveToStatusResultModel);
        }
Exemplo n.º 2
0
        public async Task AssignEmployees(MemberAssignModel model)
        {
            IDayAssign dayAssign   = GetDayAssign(model.DayAssignId);
            var        currentUser = memberService.GetCurrentUser();

            //Janitor can create task only for himself
            if (currentUser.CurrentRole == RoleType.Janitor)
            {
                model.UserIdList = new List <Guid> {
                    currentUser.MemberId
                };
                model.TeamLeadId           = currentUser.MemberId;
                model.GroupId              = null;
                model.IsAssignedToAllUsers = false;
            }

            var memberModel = new ChangeDayAssignMembersComand(dayAssign.Id.ToString())
            {
                UserIdList           = model.UserIdList,
                GroupId              = model.GroupId,
                TeamLeadId           = model.TeamLeadId,
                IsAssignedToAllUsers = model.IsAssignedToAllUsers
            };

            await messageBus.Publish(memberModel);

            if (model.IsUnassignAll)
            {
                await jobStatusService.Pending(dayAssign.Id, dayAssign.StatusId);
            }
            else if (dayAssign.StatusId != JobStatus.Opened && !model.TeamLeadId.HasValue)
            {
                await jobStatusService.Opened(dayAssign.Id, dayAssign.StatusId);
            }
            else if (dayAssign.StatusId != JobStatus.Assigned && model.TeamLeadId.HasValue)
            {
                await jobStatusService.Assigned(dayAssign.Id, dayAssign.StatusId);
            }
        }
Exemplo n.º 3
0
        public async Task <JobViewModel> GetWeekTask(JobFilterViewModel model)
        {
            IJob task = await jobService.GetJobById(model.JobId);

            var jobAssignId      = Guid.Empty;
            var existingAssignId = model.DayAssignId.HasValue ? model.DayAssignId.Value : Guid.Empty;
            var dayAssign        = dayAssignProvider.Get(existingAssignId);

            if (dayAssign != null)
            {
                JobAssign jobAssign = jobAssignProvider.GetById(dayAssign.JobAssignId);
                task.Assigns.Add(jobAssign);
                jobAssignId = dayAssign.JobAssignId;
                task.DayAssigns.Add(dayAssign);
            }
            else
            {
                jobAssignId = jobAssignProvider.GetAssignByJobIdAndDepartmentId(model.JobId, model.HousingDepartmentId).Id;
                //Create new dayAssign and set status "Assigned"
                var newDayAssignModel = new NewDayAssignViewModel
                {
                    JobId          = model.JobId,
                    DepartmentId   = model.HousingDepartmentId,
                    JobAssignId    = jobAssignId,
                    CurrentWeekDay = model.CurrentWeekDay,
                    WeekNumber     = model.WeekNumber,
                    Date           = model.Date
                };

                var createResult = await dayAssignService.CreateDayAssignWithEstimate(newDayAssignModel);

                if (createResult != Guid.Empty)
                {
                    var newDayAssign = dayAssignProvider.Get(createResult);
                    await jobStatusService.Assigned(createResult, newDayAssign.StatusId);

                    task.DayAssigns.Add(newDayAssign);
                }
            }

            return(new JobViewModel {
                Job = task, JobAssignId = jobAssignId
            });
        }