public static async Task<List<ISystemData>> GetRealtimeData(string requestType, string dataType, string campaignId, string startDate, string endDate, string maxResults, int? interval) { SiteRealtimeRequest.Singleton.InitialRequest(SiteRealtimeResource.SiteRealtimeDataClient, User.UserToken.Access_Token); // input parameter InteractionInfo interactionInfo = new InteractionInfo { StartHour = "0:00:00", EndHour = "23:59:59", StartIndex = "0", MaxResults = maxResults }; // input parameter string siteId = campaignId; // input parameter //string requestType = "Current";//[Current Daily InteractionSummary InteractionDetail InteractionEvent] //string dataType = "Summary";//[Summary(for current and daily and interaction) Detail Source Province City Ads Page Event Organic Keyword Hour(for interaction)] try { List<ISystemData> responseData; switch (requestType) { case "online": responseData = await SiteRealtimeRequest.Singleton.GetRealtimeData(siteId, dataType, interval); break; case "statistics": responseData = await SiteRealtimeRequest.Singleton.GetRealtimeData(siteId, dataType, interval); break; case "transform": responseData = await SiteRealtimeRequest.Singleton.GetInteractionData(siteId, dataType, interactionInfo); break; default: responseData = new List<ISystemData>(); break; } return responseData; } catch (Exception ex) { return new List<ISystemData>(); } }
public async Task<List<ISystemData>> GetInteractionData(string siteId, string dataType, InteractionInfo interactionInfo) { var systemData = new List<ISystemData>(); switch (dataType) { case "summary": systemData = await GetInteractionSummaryData(siteId, dataType); break; case "hour": systemData = await GetInteractionSummaryData(siteId, dataType); break; case "detail": systemData = await GetInteractionDetailData(siteId, interactionInfo); break; case "event": systemData = await GetInteractionEventData(siteId, interactionInfo); break; } return systemData; }
private async Task<List<ISystemData>> GetInteractionEventData(string siteId, InteractionInfo interactionInfo) { var resource = string.Format(SiteRealtimeResource.SiteRealtimeInteractionEventRequest, siteId); var request = new RestRequest(resource, Method.GET); if (accessToken != null) { request.AddParameter("access_token", accessToken); } if (interactionInfo != null) { request.AddParameter("start-hour", interactionInfo.StartHour); request.AddParameter("end-hour", interactionInfo.EndHour); request.AddParameter("start-index", interactionInfo.StartIndex); request.AddParameter("max-results", interactionInfo.MaxResults); } var response = await client.ExecuteGetTaskAsync<List<string>>(request); if (!IsStatusCodeOK(response.StatusCode)) { return null; } var systemData = GetInteractionEventData(response.Data[0]); await InteractionDataRequest.Singleton.CompleteData(systemData); //return response.Data; return systemData; }