Exemple #1
0
        public async Task <bool> RegisterForSession(ArloRegistration rego, ArloSession session)
        {
            var evRego = new ArloEventSessionRegistration
            {
                Link = new List <Link>()
            };

            var linkSession = new Link
            {
                Rel   = Constants.Rel.RelatedSession,
                Type  = Constants.XmlType,
                Title = "Session",
                Href  = _systemService.GetRealUrl(string.Format(Constants.Endpoints.EventSessionPattern, session.SessionID))
            };

            var linkRego = new Link
            {
                Rel   = Constants.Rel.ParentRegistration,
                Type  = Constants.XmlType,
                Title = "ParentRegistration",
                Href  = _systemService.GetRealUrl(string.Format(Constants.Endpoints.ParentRegistrationPattern, rego.RegistrationID))
            };

            evRego.Link.Add(linkRego);
            evRego.Link.Add(linkSession);

            var result = await _regoRepo.PostResult(evRego,
                                                    string.Format(Constants.Endpoints.SessionRegistrationsPattern, rego.RegistrationID));

            if (result.IsSuccessCode)
            {
                await GetSessionRegistrations(rego, true); //recache this

                _logService.TrackTrace("Register", XSeverityLevel.Information,

                                       new Dictionary <string, string>
                {
                    {
                        "text", result.Result
                    },
                    { "rego", rego.RegistrationID },
                    { "sessionid", session.SessionID }
                });
            }
            else
            {
                _logService.TrackTrace("Unregister issue", XSeverityLevel.Error,

                                       new Dictionary <string, string>
                {
                    {
                        "text", result.Result
                    },
                    { "rego", rego.RegistrationID },
                    { "sessionid", session.SessionID }
                });
            }

            return(result.IsSuccessCode);
        }
Exemple #2
0
        public static bool IsABitLater(this ArloSession session)
        {
            if (!session.DateTime_Start.HasValue)
            {
                return(false);
            }

            var sessionService = ContainerHost.Container.Resolve <ISessionService>();

            var timeAway = session.DateTime_Start.Value.Subtract(sessionService.GetCurrentTime());

            return(timeAway.TotalMinutes > 75);
        }
Exemple #3
0
        public async Task <List <ArloContact> > GetPresenters(ArloSession ev)
        {
            var link = ev?.Link.FirstOrDefault(_ => _.Rel == Constants.Rel.Presenters);

            if (link == null)
            {
                return(null);
            }

            var contacts = await GetContacts(link.Href);

            ev.Presenters = contacts;
            return(contacts);
        }
Exemple #4
0
        async Task _getCustomFields(ArloSession session, bool forceRefresh)
        {
            if (session == null)
            {
                return;
            }

            var fieldsLink = session.Link.FirstOrDefault(_ => _.Rel == Constants.Rel.CustomFields);

            if (fieldsLink == null)
            {
                return;
            }

            var fields = await GetEntity(fieldsLink.Href, () => _customFieldsRepo.Get(fieldsLink.Href), Constants.Cache.DefaultTimespan, forceRefresh);

            session.CustomFields = fields;
        }
Exemple #5
0
        async Task _getRoomDetails(ArloSession session, EventSessionVenueDetails venueDetails, bool forceRefresh)
        {
            if (session == null || venueDetails == null)
            {
                return;
            }

            var fieldsLink = venueDetails.Link?.FirstOrDefault(_ => _.Rel == Constants.Rel.VenueRoom);

            if (fieldsLink == null)
            {
                return;
            }

            var fields = await GetEntity(fieldsLink.Href, () => _roomRepo.Get(fieldsLink.Href), Constants.Cache.DefaultTimespan, forceRefresh);

            session.VenueDetails.VenueRoom = fields;
        }
Exemple #6
0
        async Task _getVenueDetails(ArloSession session, bool forceRefresh)
        {
            if (session == null)
            {
                return;
            }

            var fieldsLink = session.Link.FirstOrDefault(_ => _.Rel == Constants.Rel.VenueDetails);

            if (fieldsLink == null)
            {
                return;
            }

            var fields = await GetEntity(fieldsLink.Href, () => _venueRepo.Get(fieldsLink.Href), Constants.Cache.DefaultTimespan, forceRefresh);

            session.VenueDetails = fields;

            await _getRoomDetails(session, fields, forceRefresh);
        }
Exemple #7
0
        private bool FilterSessionByDayAndTime(ArloSession s, DateTime date, string time)
        {
            if (!s.DateTime_Start.HasValue || s.DateTime_Start.Value.Date != date.Date)
            {
                return(false);
            }

            if (time.ToLowerInvariant().Equals("morning"))
            {
                if (s.DateTime_Start.Value.TimeOfDay.Hours < 12)
                {
                    return(true);
                }
            }
            else
            {
                if (s.DateTime_Start.Value.TimeOfDay.Hours >= 12)
                {
                    return(true);
                }
            }

            return(false);
        }
Exemple #8
0
 string _getSessionIdKey(ArloSession session)
 {
     return($"session.{session.SessionID}");
 }
Exemple #9
0
        public async Task <ArloEventSessionRegistration> IsRegistered(ArloRegistration rego, ArloSession session, bool forceRefresh)
        {
            var registrations = await GetSessionRegistrations(rego, forceRefresh);

            var thisRego = registrations.FirstOrDefault(_ => _.Session?.SessionID == session.SessionID);

            return(thisRego);
        }