예제 #1
0
        protected void Page_Load(object sender, EventArgs args)
        {
            var dataAdapter = new ConferenceEventDataAdapter(new PortalContextDataAdapterDependencies(Portal, PortalName), PortalConference);

            var occurrences = dataAdapter.SelectEventOccurrences(
                PortalConference.GetAttributeValue <DateTime?>("adx_startingdate").GetValueOrDefault(DateTime.MinValue),
                PortalConference.GetAttributeValue <DateTime?>("adx_enddate").GetValueOrDefault(DateTime.MaxValue)).ToArray();

            UpcomingEvents.DataSource = occurrences
                                        .OrderBy(e => e.Start);

            UpcomingEvents.DataBind();
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs args)
        {
            var @event = _portal.Value.Entity;

            if (@event == null || @event.LogicalName != "adx_event")
            {
                return;
            }

            var dataAdapter = new EventDataAdapter(@event, new PortalContextDataAdapterDependencies(_portal.Value, PortalName));
            var now         = DateTime.UtcNow;

            var occurrences = (PortalConference != null) ? dataAdapter.SelectEventOccurrences(PortalConference.GetAttributeValue <DateTime?>("adx_startingdate").GetValueOrDefault(now.AddMonths(-3)), PortalConference.GetAttributeValue <DateTime?>("adx_enddate").GetValueOrDefault(now.AddMonths(3))).ToArray() :
                              dataAdapter.SelectEventOccurrences(now.AddMonths(-3), now.AddMonths(3)).ToArray();

            IEventOccurrence requestOccurrence;

            RequestEventOccurrence = dataAdapter.TryMatchRequestEventOccurrence(Request, occurrences, out requestOccurrence)
                                ? requestOccurrence
                                : occurrences.Length == 1 ? occurrences.Single() : null;

            var user = _portal.Value.User;

            CanRegister = Request.IsAuthenticated && user != null && RequestEventOccurrence != null && RequestEventOccurrence.Start >= now &&
                          (@event.GetAttributeValue <EntityReference>("adx_conferenceid") != null && UserIsRegisteredForConference ||
                           @event.GetAttributeValue <EntityReference>("adx_conferenceid") == null);

            RequiresRegistration = (@event.GetAttributeValue <bool?>("adx_requiresregistration").GetValueOrDefault() ||
                                    @event.GetAttributeValue <EntityReference>("adx_conferenceid") != null && UserIsRegisteredForConference) &&
                                   RequestEventOccurrence != null &&
                                   RequestEventOccurrence.Start >= now;

            if (CanRegister)
            {
                var registration = _portal.Value.ServiceContext.CreateQuery("adx_eventregistration")
                                   .FirstOrDefault(e => e.GetAttributeValue <EntityReference>("adx_attendeeid") == user.ToEntityReference() &&
                                                   e.GetAttributeValue <EntityReference>("adx_eventscheduleid") == RequestEventOccurrence.EventSchedule.ToEntityReference());

                if (registration != null)
                {
                    Unregister.CommandArgument = registration.Id.ToString();
                    IsRegistered = true;
                }
            }

            OtherOccurrences.DataSource = occurrences
                                          .Where(e => e.Start >= now)
                                          .Where(e => RequestEventOccurrence == null || !(e.EventSchedule.Id == RequestEventOccurrence.EventSchedule.Id && e.Start == RequestEventOccurrence.Start));

            OtherOccurrences.DataBind();

            var sessionEvent = @event;

            Speakers.DataSource = sessionEvent.GetRelatedEntities(_portal.Value.ServiceContext, new Relationship("adx_eventspeaker_event"));
            Speakers.DataBind();
        }