예제 #1
0
        public void SavePodDefaultTeamToEventStaff(long eventId, List <long> podIds, long scheduledByOrgRoleId)
        {
            var eventRoles = _eventRoleRepository.GetAllActiveRoles();
            var eventStaff = _eventStaffAssignmentRepository.GetForEvent(eventId);

            if (eventStaff != null && eventStaff.Count() > 0)
            {
                var removedPodIds = eventStaff.Where(es => !podIds.Contains(es.PodId)).Select(es => es.PodId).Distinct().ToList();
                if (removedPodIds.Count > 0)
                {
                    foreach (var podId in removedPodIds)
                    {
                        _eventStaffAssignmentRepository.DeleteFor(eventId, podId);
                    }
                }

                var currentPodIds = eventStaff.Select(es => es.PodId).Distinct().ToList();
                var newPodIds     = podIds.Where(p => !currentPodIds.Contains(p)).Select(p => p).ToList();
                if (newPodIds.Count > 0)
                {
                    foreach (var newPodId in newPodIds)
                    {
                        var defaultStaffAssignments = _podStaffAssignmentRepository.GetPodSatff(newPodId);
                        var eventStaffBasicinfo     = GetStaffBasicModels(defaultStaffAssignments.Select(dsa => new OrderedPair <long, long>(dsa.OrganizationRoleUserId, dsa.EventRoleId)), eventRoles, newPodId);
                        Save(eventId, newPodId, scheduledByOrgRoleId, eventStaffBasicinfo);
                    }
                }
            }
            else
            {
                if (podIds.Count > 0)
                {
                    foreach (var podId in podIds)
                    {
                        var defaultStaffAssignments = _podStaffAssignmentRepository.GetPodSatff(podId);
                        var eventStaffBasicinfo     = GetStaffBasicModels(defaultStaffAssignments.Select(dsa => new OrderedPair <long, long>(dsa.OrganizationRoleUserId, dsa.EventRoleId)), eventRoles, podId);
                        Save(eventId, podId, scheduledByOrgRoleId, eventStaffBasicinfo);
                    }
                }
            }
        }
예제 #2
0
        public PodEditModel GetPodEditModel(long podId)
        {
            var pod                = ((IUniqueItemRepository <Pod>)_podRepository).GetById(podId);
            var territories        = _territoryRepository.GetTerritoriesForPod(podId);
            var podTerritories     = _territoryRepository.GetAllTerritoriesIdNamePair(TerritoryType.Pod);
            var podStaff           = _podStaffAssignmentRepository.GetPodSatff(podId);
            var idNamePairforStaff = _orgRoleUserrepository.GetNameIdPairofUsers(podStaff.Select(ps => ps.OrganizationRoleUserId).ToArray());
            var staffEventRoles    = _staffEventRoleRepository.GetByIds(podStaff.Select(ps => ps.EventRoleId));

            var podRooms     = _podRoomRepository.GetByPodId(podId);
            var podRoomTests = _podRoomRepository.GetPodRoomTestsByPodId(podId);
            var tests        = _testRepository.GetAll();

            return(_podEditModelFactory.Create(pod, territories, podTerritories, podStaff, idNamePairforStaff, staffEventRoles, podRooms, podRoomTests, tests));
        }