Esempio n. 1
0
        public async Task UnassignJob(Guid dayAssignId, string changeStatusComment, List <IMemberSpentTimeModel> members, JobStatus newJobStatus, Guid?selectedCancellingId, Guid[] uploadedFileIds)
        {
            if (!selectedCancellingId.HasValue)
            {
                throw new InvalidOperationException("Wrong parameters passed");
            }

            DayAssign dayAssign = dayAssignProvider.Get(dayAssignId);

            if (IsAllowChangeDayAssignStatus(dayAssign))
            {
                var memberModel = new ChangeDayAssignMembersComand(dayAssign.Id.ToString())
                {
                    UserIdList           = new List <Guid>(),
                    GroupId              = newJobStatus != JobStatus.Pending ? dayAssign.GroupId : null,
                    TeamLeadId           = null,
                    IsAssignedToAllUsers = newJobStatus != JobStatus.Pending && dayAssign.IsAssignedToAllUsers
                };

                await messageBus.Publish(memberModel);

                if (newJobStatus == JobStatus.Pending)
                {
                    await jobStatusService.Pending(dayAssignId, dayAssign.StatusId, changeStatusComment, members, selectedCancellingId, uploadedFileIds);
                }
                else
                {
                    await jobStatusService.Rejected(dayAssignId, dayAssign.StatusId, changeStatusComment, members, selectedCancellingId, uploadedFileIds);
                }
            }
        }
        public async Task Handle(ChangeDayAssignMembersComand message)
        {
            var dayAssign = await repository.Get(message.Id);

            dayAssign.AssignUsers(message.GroupId, message.UserIdList, message.TeamLeadId, message.IsAssignedToAllUsers);
            await repository.Save(dayAssign);
        }
Esempio n. 3
0
        public async Task AssignJob(Guid dayAssignId)
        {
            IMemberModel member    = memberService.GetCurrentUser();
            DayAssign    dayAssign = dayAssignProvider.Get(dayAssignId);

            var userIds = dayAssign.UserIdList ?? new List <Guid>();

            userIds.Add(member.MemberId);

            var memberModel = new ChangeDayAssignMembersComand(dayAssign.Id.ToString())
            {
                UserIdList           = userIds,
                GroupId              = dayAssign.GroupId,
                TeamLeadId           = dayAssign.TeamLeadId.HasValue ? dayAssign.TeamLeadId : member.MemberId,
                IsAssignedToAllUsers = dayAssign.IsAssignedToAllUsers && dayAssign.TeamLeadId.HasValue
            };

            await messageBus.Publish(memberModel);

            await jobStatusService.Assigned(dayAssignId, dayAssign.StatusId);
        }
Esempio n. 4
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);
            }
        }