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); } } } }
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)); }