public static AnalyticsCachedAccount Parse(AnalyticsCachedUser user, JObject obj) { AnalyticsCachedAccount account = new AnalyticsCachedAccount(); account.User = user; account.Id = obj.GetString("id"); account.Name = obj.GetString("name"); account.Created = obj.GetString("created"); account.Updated = obj.GetString("updated"); account.WebProperties = obj.GetArray("properties", x => AnalyticsCachedWebProperty.Parse(account, x)); return(account); }
public static AnalyticsCachedWebProperty Parse(AnalyticsCachedAccount account, JObject obj) { AnalyticsCachedWebProperty webProperty = new AnalyticsCachedWebProperty(); webProperty.Account = account; webProperty.Id = obj.GetString("id"); webProperty.Name = obj.GetString("name"); webProperty.WebsiteUrl = obj.GetString("websiteUrl"); webProperty.Created = obj.GetString("created"); webProperty.Updated = obj.GetString("updated"); webProperty.Profiles = obj.GetArray("profiles", x => AnalyticsCachedProfile.Parse(webProperty, x)); return(webProperty); }
public static AnalyticsCachedProfile Parse(AnalyticsCachedWebProperty webProperty, JObject obj) { AnalyticsCachedProfile profile = new AnalyticsCachedProfile(); profile.WebProperty = webProperty; profile.Id = obj.GetString("id"); profile.Currency = obj.GetString("currency"); profile.Timezone = obj.GetString("timezone"); profile.Name = obj.GetString("name"); profile.Type = obj.GetString("type"); profile.WebsiteUrl = obj.GetString("websiteUrl"); profile.Created = obj.GetString("created"); profile.Updated = obj.GetString("updated"); return(profile); }
public static AnalyticsCachedUser GetFromResponses(AnalyticsUserConfiguration user, AnalyticsAccountsResponse response1, AnalyticsWebPropertiesResponse response2, AnalyticsProfilesResponse response3) { Dictionary <string, List <AnalyticsWebProperty> > webProperties = new Dictionary <string, List <AnalyticsWebProperty> >(); Dictionary <string, List <AnalyticsProfile> > profiles = new Dictionary <string, List <AnalyticsProfile> >(); // Add the web properties to a dictionary for faster lookups foreach (AnalyticsWebProperty webProperty in response2.Body.Items) { List <AnalyticsWebProperty> list; if (!webProperties.TryGetValue(webProperty.AccountId, out list)) { webProperties.Add(webProperty.AccountId, list = new List <AnalyticsWebProperty>()); } list.Add(webProperty); } // Add the profiles to a dictionary for faster lookups foreach (AnalyticsProfile profile in response3.Body.Items) { List <AnalyticsProfile> list; if (!profiles.TryGetValue(profile.WebPropertyId, out list)) { profiles.Add(profile.WebPropertyId, list = new List <AnalyticsProfile>()); } list.Add(profile); } AnalyticsCachedUser cachedUser = new AnalyticsCachedUser { Id = user.Id }; List <AnalyticsCachedAccount> cachedAccounts = new List <AnalyticsCachedAccount>(); foreach (AnalyticsAccount account in response1.Body.Items) { List <AnalyticsCachedWebProperty> list11 = new List <AnalyticsCachedWebProperty>(); List <AnalyticsWebProperty> list1; if (!webProperties.TryGetValue(account.Id, out list1)) { list1 = new List <AnalyticsWebProperty>(); } AnalyticsCachedAccount ca = new AnalyticsCachedAccount { User = null, Id = account.Id, Name = account.Name, Created = account.JsonObject.GetString("created"), Updated = account.JsonObject.GetString("updated") }; foreach (AnalyticsWebProperty webProperty in list1) { List <AnalyticsProfile> list2; if (!profiles.TryGetValue(webProperty.Id, out list2)) { list2 = new List <AnalyticsProfile>(); } AnalyticsCachedWebProperty cwp = new AnalyticsCachedWebProperty { Id = webProperty.Id, Name = webProperty.Name, WebsiteUrl = webProperty.WebsiteUrl, Created = webProperty.Created.ToString("r"), Updated = webProperty.Updated.ToString("r") }; cwp.Profiles = list2.Select(profile => new AnalyticsCachedProfile { WebProperty = cwp, Id = profile.Id, Name = profile.Name, Currency = profile.Currency, Timezone = profile.Timezone, WebsiteUrl = profile.WebsiteUrl, Type = profile.Type, Created = profile.JsonObject.GetString("created"), Updated = profile.JsonObject.GetString("updated") }).ToArray(); list11.Add(cwp); } ca.WebProperties = list11.ToArray(); cachedAccounts.Add(ca); } cachedUser.Accounts = cachedAccounts.ToArray(); return(cachedUser); }