private IEnumerable <OrderedPair <long, string> > GetEventIdSponsorPair(EventStaffAssignmentListModel data) { var eventIdSponsorPair = new List <OrderedPair <long, string> >(); var eventIds = data.StaffEventAssignments.Select(x => x.Event.Id).Distinct(); var events = _eventRepository.GetEventsByIds(eventIds); var eventHpPairs = _hospitalPartnerRepository.GetEventAndHospitalPartnerOrderedPair(eventIds); var organizationIds = new List <long>(); if (eventHpPairs != null && eventHpPairs.Any()) { organizationIds.AddRange(eventHpPairs.Select(o => o.SecondValue).ToArray()); } organizationIds.AddRange(events.Where(e => e.AccountId.HasValue && e.AccountId.Value > 0).Select(e => e.AccountId.Value).ToArray()); var organizations = _organizationRepository.GetOrganizations(organizationIds.Distinct().ToArray()); var sponsor = string.Empty; foreach (var theEvent in events) { if (eventHpPairs != null && eventHpPairs.Any()) { var hospitalPartnerId = eventHpPairs.Where(o => o.FirstValue == theEvent.Id).Select(o => o.SecondValue).FirstOrDefault(); if (hospitalPartnerId > 0) { sponsor = organizations.Where(o => o.Id == hospitalPartnerId).Select(o => o.Name).First(); } } if (string.IsNullOrEmpty(sponsor)) { if (theEvent.AccountId.HasValue && theEvent.AccountId.Value > 0) { sponsor = organizations.Where(o => o.Id == theEvent.AccountId.Value).Select(o => o.Name).First(); } } eventIdSponsorPair.Add(new OrderedPair <long, string>(theEvent.Id, sponsor)); } return(eventIdSponsorPair); }
public EventStaffAssignmentListModel GetforStaffCalendar(bool isCurrentRoleTechnician, EventStaffAssignmentListModelFilter filter = null) { if (filter == null || filter.Year == 0 || filter.Month < 1) { if (isCurrentRoleTechnician) { filter = new EventStaffAssignmentListModelFilter(DateTime.Today) { StaffId = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId }; } else { long podId = _podRepository.GetFirstImmediateEventPodId(); filter = new EventStaffAssignmentListModelFilter(DateTime.Today) { PodId = podId }; } } var model = new EventStaffAssignmentListModel(filter); if (filter.PodId > 0) { var pod = ((IUniqueItemRepository <Pod>)_podRepository).GetById(filter.PodId); model.SelectedPod = pod.Name; } if (filter.StaffId > 0) { var nameIdPair = _organizationRoleUserRepository.GetNameIdPairofUsers(new[] { filter.StaffId }).ToArray().FirstOrDefault(); if (nameIdPair != null) { model.SelectedStaff = nameIdPair.SecondValue; } } return(model); }