示例#1
0
        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);
        }
示例#2
0
        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);
        }