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); }
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); }
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); }
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; }
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; }
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); }
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); }
string _getSessionIdKey(ArloSession session) { return($"session.{session.SessionID}"); }
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); }