public async Task <IApiResult <Org> > GetHost(int id, DataSource source) { var request = SmartWalkApiFactory.CreateHostRequest(id); var response = await GetResponse(request, source); var result = default(IApiResult <Org>); if (response != null && response.Data != null && response.Data.Selects != null) { var entity = response.Data .GetRecords <Entity>(0) .FirstOrDefault(); var eventMetadatas = response.Data .GetRecords <EventMetadata>(1) .ToArray(); if (entity != null) { var org = CreateOrg(entity, eventMetadatas); result = new ApiResult <Org> { Data = org, Source = response.Source }; } } return(result); }
public async Task <IApiResult <OrgEvent[]> > GetOrgEvents(Location location, DataSource source) { var request = SmartWalkApiFactory.CreateOrgEventsRequest(location); var response = await GetResponse(request, source, false); var result = default(IApiResult <OrgEvent[]>); if (response != null && response.Data != null) { var eventMetadatas = response.Data .GetRecords <EventMetadata>(0) .ToArray(); var hosts = response.Data .GetRecords <Entity>(1) .ToArray(); var orgEvents = eventMetadatas .Select(em => new OrgEvent(em, hosts.First(h => h.Id == em.Host.Id()))) .ToArray(); result = new ApiResult <OrgEvent[]> { Data = orgEvents, Source = response.Source }; } return(result); }
public async Task <IApiResult <OrgEvent> > GetOrgEventInfo(int id, DataSource source) { var request = SmartWalkApiFactory.CreateOrgEventInfoRequest(id); var response = await GetResponse(request, source); var result = default(IApiResult <OrgEvent>); if (response != null && response.Data != null) { var eventMetadata = response.Data .GetRecords <EventMetadata>(0) .FirstOrDefault(); var host = response.Data .GetRecords <Entity>(1) .FirstOrDefault(); var orgEvent = new OrgEvent(eventMetadata, host); result = new ApiResult <OrgEvent> { Data = orgEvent, Source = response.Source }; } return(result); }
public async Task <IApiResult <OrgEvent> > GetOrgEvent(int id, DataSource source) { var request = SmartWalkApiFactory.CreateOrgEventRequest(id); var response = await GetResponse(request, source); var result = default(IApiResult <OrgEvent>); if (response != null && response.Data != null) { var eventMetadata = response.Data .GetRecords <EventMetadata>(0) .FirstOrDefault(); var host = response.Data .GetRecords <Entity>(1) .FirstOrDefault(); var shows = response.Data .GetRecords <Show>(2) .ToArray(); var venueDetails = response.Data .GetRecords <EventVenueDetail>(3) .ToArray(); var venues = response.Data .GetRecords <Entity>(4) .Select(e => { var venue = CreateVenue(e, venueDetails, shows); return(venue); }) .OrderBy(venueDetails, eventMetadata.VenueOrderType) .ToArray(); var orgEvent = new OrgEvent(eventMetadata, host, venues); result = new ApiResult <OrgEvent> { Data = orgEvent, Source = response.Source }; } return(result); }