public static async Task<ObservableCollection<TrackingItemsObj>> getTrackingItems() { ObservableCollection<TrackingItemsObj> ritem = new ObservableCollection<TrackingItemsObj>(); Library_APICall apiLibrary = new Library_APICall(); string resp = await apiLibrary.apiCall((string)ApplicationData.Current.LocalSettings.Values["Tokens"], "https://api.teamsnap.com/v3/tracked_items/search?team_id=" + Constants.CurrentTeamID); RootObjectTrackingItemStatus ritemstatus = trackingStatusDataDeserializer(resp); if (ritemstatus.collection.items != null) { Dictionary<string, int> rstatus_items_data_ht = new Dictionary<string, int>(); for (int i = 0; i < ritemstatus.collection.items[0].data.Count; i++) { if (!rstatus_items_data_ht.ContainsKey(ritemstatus.collection.items[0].data[i].name)) { rstatus_items_data_ht.Add(ritemstatus.collection.items[0].data[i].name, i); } } ritem.Clear(); for (int i = 0; i < ritemstatus.collection.items.Count; i++) { TrackingItemsObj robj = new TrackingItemsObj(); robj.itemid = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["id"]].value == null ? 0 : (long)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["id"]].value; robj.teamid = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["team_id"]].value == null ? 0 : (long)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["team_id"]].value; robj.itemname = String.IsNullOrEmpty((string)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["name"]].value) ? "" : (string)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["name"]].value; ritem.Add(robj); } return ritem; } else { return null; } }
public static async Task<ObservableCollection<MemberItemTrackingStatus>> getTrackingItemStatus(long trackingitemid) { ObservableCollection<MemberItemTrackingStatus> ritemstatuscollection = new ObservableCollection<MemberItemTrackingStatus>(); methodLibrary mlb = new methodLibrary(); string userclass = await mlb.readSerializedUserClass(); RootObjectUsers rusers = new RootObjectUsers(); rusers = Users.usersDataDeserializer(userclass); Library_APICall apiLibrary = new Library_APICall(); string resp = await apiLibrary.apiCall((string)ApplicationData.Current.LocalSettings.Values["Tokens"], "https://api.teamsnap.com/v3/tracked_item_statuses/search?tracked_item_id=" + trackingitemid); RootObjectTrackingItemStatus ritemstatus = trackingStatusDataDeserializer(resp); Dictionary<string, int> rstatus_items_data_ht = new Dictionary<string, int>(); for (int i = 0; i < ritemstatus.collection.items[0].data.Count; i++) { if (!rstatus_items_data_ht.ContainsKey(ritemstatus.collection.items[0].data[i].name)) { rstatus_items_data_ht.Add(ritemstatus.collection.items[0].data[i].name, i); } } ritemstatuscollection.Clear(); for (int i = 0; i < ritemstatus.collection.items.Count; i++) { MemberItemTrackingStatus robj = new MemberItemTrackingStatus(); robj.object_id = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["id"]].value == null ? 0 : (long)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["id"]].value; robj.trackingitemid = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["tracked_item_id"]].value == null ? 0 : (long)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["tracked_item_id"]].value; robj.status = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["status"]].value == null ? "" : (string)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["status"]].value; robj.member_id = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["member_id"]].value == null ? 0 : (long)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["member_id"]].value; robj.status_code = ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["status_code"]].value == null ? 0 : (long)ritemstatus.collection.items[i].data[(int)rstatus_items_data_ht["status_code"]].value; CollectionUsersTeamMembers rmember = new CollectionUsersTeamMembers(); rmember = mlb.getMemberInfoFromFile(rusers, robj.member_id); robj.member_name = rmember.fullname; ritemstatuscollection.Add(robj); } return ritemstatuscollection; }
public async Task<bool> doWhatSignInDoes() { string access_token = null; string meAPIResponse = null; string teamAPIResponse = null; bool writeserializeduserclass = false; //string memberAPIResponse = null; LibraryAuth = new Library_TokenAuth(); methodLibrary mlb = new methodLibrary(); Library_APICall LibraryAPI = new Library_APICall(); RootObjectMe rme = new RootObjectMe(); //RootObjectMembers rmembers = new RootObjectMembers(); RootObjectTeams rteams = new RootObjectTeams(); RootObjectUsers ru = new RootObjectUsers(); Debug.WriteLine("doWhatSignInDoes : Checking if token is valid"); string meAPI = (string)ApplicationData.Current.LocalSettings.Values["meAPI"]; if (await LibraryAuth.tokenIsValid()) { access_token = (string)ApplicationData.Current.LocalSettings.Values["Tokens"]; //call Me API //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Token is valid."); //meAPIResponse = await LibraryAPI.apiCall(access_token, meAPI); string refreshclicked = (string)ApplicationData.Current.LocalSettings.Values["RefreshClicked"]; // if (await checkIfFileExists(("family_contacts_phone_res" + teammembers.member_id)) && (String.IsNullOrEmpty(refreshclicked) || refreshclicked.Equals("false"))) if (await checkIfFileExists("meAPIResponse") && (String.IsNullOrEmpty(refreshclicked) || refreshclicked.Equals("false"))) { meAPIResponse = await readFile("meAPIResponse"); if (String.IsNullOrEmpty(meAPIResponse)) { meAPIResponse = await LibraryAPI.apiCall(access_token, meAPI); } } else { meAPIResponse = await LibraryAPI.apiCall(access_token, meAPI); } if (meAPIResponse == "fail") { //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Call to Me API failed"); return false; } //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Call to Me API succeeded."); Debug.WriteLine(meAPIResponse); // deserialize meAPIResponse //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Deserializaing Me API response."); rme = Me.MeDataDeserializer(meAPIResponse); //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": me API response deserialization complete."); Hashtable links_ht = new Hashtable(); int id = 0; while (id < rme.collection.items[0].links.Count) { if (!links_ht.Contains(rme.collection.items[0].links[id].rel)) { links_ht.Add(rme.collection.items[0].links[id].rel, id); } id++; } ApplicationData.Current.LocalSettings.Values["TeamsAPI"] = rme.collection.items[0].links[(int)links_ht["active_teams"]].href; string teamAPI = (string)ApplicationData.Current.LocalSettings.Values["TeamsAPI"]; Debug.WriteLine(rme.collection.items[0].data[0].value); teamAPIResponse = await LibraryAPI.apiCall(access_token, teamAPI); if (teamAPIResponse == "fail") { //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Call to Teams API failed."); return false; } //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Call to Teams API succeded."); //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Deserializing Teams API Response."); rteams = Teams.teamDataDeserializer(teamAPIResponse); //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Deserialization of Teams API Response completed successfully."); ////await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Writing Me Response to file."); await writeFile("meAPIResponse", meAPIResponse); await writeFile("teamAPIResponse", teamAPIResponse); var rtemplate = rteams.collection.template; writeFile("teamTemplate", Teams.teamTemplateSerializer(rtemplate)); //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Updating the User Class."); rusers = await methodLibrary.updateUser(); //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": User class updated"); string resp = Users.usersDataSerializer(rusers); Debug.WriteLine(resp); writeserializeduserclass = await writeSerializedUserClass(resp); resp = await readSerializedUserClass(); //return true; } else { Debug.WriteLine("Network problems"); //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Network connectivity problems."); return false; } return writeserializeduserclass; }
/// <summary> /// update User Information. /// </summary> /// <returns></returns> public static async Task<RootObjectUsers> updateUser() { //await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.High, // () => // { // // UI stuff here // }); mlb = new methodLibrary(); //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": in updateUser method"); string meAPIResponse = await mlb.readFile("meAPIResponse"); RootObjectMe rme = new RootObjectMe(); rme = Me.MeDataDeserializer(meAPIResponse); string teamAPIResponse = await mlb.readFile("teamAPIResponse"); RootObjectTeams rteams = new RootObjectTeams(); //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Deserializing teams response"); rteams = Teams.teamDataDeserializer(teamAPIResponse); // start with rme and store data about the user itemCollection = new CollectionUsersItem(); LibraryAPI = new Library_APICall(); //teamsCollection = new CollectionUsersTeam(); rusers = new RootObjectUsers(); rusers.items = new List<CollectionUsersItem>(); rusers.teams = new List<CollectionUsersTeam>(); rsports = new RootObjectSports(); RootObjectMembers rmembers = new RootObjectMembers(); Hashtable rme_ht = new Hashtable(); Hashtable rteam_ht = new Hashtable(); Hashtable rteamlinks_ht = new Hashtable(); string memberAPIResponse = null; int id = 0; /** Populate a hashtable to get sportname quickly. Also write results of sportsAPI call to a file.**/ string sportres = await LibraryAPI.apiCall((string)ApplicationData.Current.LocalSettings.Values["Tokens"], "https://api.teamsnap.com/v3/sports"); rsports = Sports.usersDataDeserializer(sportres); Hashtable rsports_ht = new Hashtable(); for (int i = 0; i < rsports.collection.items.Count; i++) { if (!rsports_ht.Contains(rsports.collection.items[i].data[0].value)) { rsports_ht.Add(rsports.collection.items[i].data[0].value, i); } } mlb.makeAPICallandWriteToFile("sportsName", "https://api.teamsnap.com/v3/sports"); /************/ while(id < rme.collection.items[0].data.Count) { if (!rme_ht.Contains(rme.collection.items[0].data[id].name)) { rme_ht.Add(rme.collection.items[0].data[id].name, id); } id++; } await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Updating itemcollections", false); itemCollection.id = rme.collection.items[0].data[(int)rme_ht["id"]].value == null ? 0:(long)rme.collection.items[0].data[(int)rme_ht["id"]].value; itemCollection.type = rme.collection.items[0].data[(int)rme_ht["type"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["type"]].value; itemCollection.address_country = rme.collection.items[0].data[(int)rme_ht["address_country"]].value == null ? "" : (string)rme.collection.items[0].data[(int)rme_ht["address_country"]].value; itemCollection.address_state = rme.collection.items[0].data[(int)rme_ht["address_state"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["address_state"]].value; itemCollection.birthday = rme.collection.items[0].data[(int)rme_ht["birthday"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["birthday"]].value; itemCollection.email = rme.collection.items[0].data[(int)rme_ht["email"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["email"]].value; updatePlanInfo(itemCollection.email); itemCollection.first_name = rme.collection.items[0].data[(int)rme_ht["first_name"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["first_name"]].value; itemCollection.last_name = rme.collection.items[0].data[(int)rme_ht["last_name"]].value == null ? "":(string)rme.collection.items[0].data[(int)rme_ht["last_name"]].value; //itemCollection.teams_count = rme.collection.items[0].data[(int)rme_ht["teams_count"]].value == null ? 0:(long)rme.collection.items[0].data[(int)rme_ht["teams_count"]].value; try { itemCollection.teams_count = (int)rteams.collection.items.Count; } catch (Exception ex) { await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Exception in setting team count", true); } await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": itemcollection has been updated", false); rusers.items.Add(itemCollection); Debug.WriteLine("MethodLibrary : End rME. Start rTeam."); // now use rteams to store data about the teams the user is a member of. for(int i=0; i < rusers.items[0].teams_count; i++) { id = 0; try { while (id < rteams.collection.items[i].data.Count) { if (!rteam_ht.Contains(rteams.collection.items[i].data[id].name)) { rteam_ht.Add(rteams.collection.items[i].data[id].name, id); } id++; } id = 0; while (id < rteams.collection.items[i].links.Count) { if (!rteamlinks_ht.Contains(rteams.collection.items[i].links[id].rel)) { rteamlinks_ht.Add(rteams.collection.items[i].links[id].rel, id); } id++; } } catch (Exception ex) { Debug.WriteLine("Exception in setting rteam_ht and rteamlinks_ht :" + ex); await mlb.writeToLogFile((DateTime.UtcNow).ToString() + "Exception in setting rteam_ht and rteamlinks_ht: " + ex, true); } teamsCollection = new CollectionUsersTeam(); teamsCollection.members = new List<CollectionUsersTeamMembers>(); teamsCollection.id = rteams.collection.items[i].data[(int)rteam_ht["id"]].value == null ? 0:(long)rteams.collection.items[i].data[(int)rteam_ht["id"]].value; teamsCollection.eventsLink = rteams.collection.items[i].links[(int)rteamlinks_ht["events"]].href == null ? "":(string)rteams.collection.items[i].links[(int)rteamlinks_ht["events"]].href; /** Writing API call results of Opponents, Events and Locations to file. Speed up stuff ahead**/ string flname = "events_" + (teamsCollection.id).ToString(); await mlb.makeAPICallandWriteToFile(flname, teamsCollection.eventsLink); flname = "opponents_" + (teamsCollection.id).ToString(); mlb.makeAPICallandWriteToFile(flname, (string)rteams.collection.items[i].links[(int)rteamlinks_ht["opponents"]].href); flname = "locations_" + (teamsCollection.id).ToString(); mlb.makeAPICallandWriteToFile(flname, (string)rteams.collection.items[i].links[(int)rteamlinks_ht["locations"]].href); ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Updating Team"; /**Done**/ //string tempres = await LibraryAPI.apiCall((string)ApplicationData.Current.LocalSettings.Values["Tokens"], teamsCollection.eventsLink); teamsCollection.locationsLink = rteams.collection.items[i].links[(int)rteamlinks_ht["locations"]].href == null ? "":(string)rteams.collection.items[i].links[(int)rteamlinks_ht["locations"]].href; string memberslink = rteams.collection.items[i].links[(int)rteamlinks_ht["members"]].href == null ? "":(string)rteams.collection.items[i].links[(int)rteamlinks_ht["members"]].href; teamsCollection.type = rteams.collection.items[i].data[(int)rteam_ht["type"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["type"]].value; teamsCollection.division_name = rteams.collection.items[i].data[(int)rteam_ht["division_name"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["division_name"]].value; teamsCollection.is_archived_season = rteams.collection.items[i].data[(int)rteam_ht["is_archived_season"]].value == null ? false : (bool)rteams.collection.items[i].data[(int)rteam_ht["is_archived_season"]].value; teamsCollection.is_retired = rteams.collection.items[i].data[(int)rteam_ht["is_retired"]].value == null ? false : (bool)rteams.collection.items[i].data[(int)rteam_ht["is_retired"]].value; teamsCollection.league_name = rteams.collection.items[i].data[(int)rteam_ht["league_name"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["league_name"]].value; teamsCollection.league_url = rteams.collection.items[i].data[(int)rteam_ht["league_url"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["league_url"]].value; teamsCollection.is_in_league = rteams.collection.items[i].data[(int)rteam_ht["is_in_league"]].value == null ? false : (bool)rteams.collection.items[i].data[(int)rteam_ht["is_in_league"]].value; teamsCollection.location_country = rteams.collection.items[i].data[(int)rteam_ht["location_country"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["location_country"]].value; teamsCollection.location_postal_code = rteams.collection.items[i].data[(int)rteam_ht["location_postal_code"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["location_postal_code"]].value; teamsCollection.location_latitude = rteams.collection.items[i].data[(int)rteam_ht["location_latitude"]].value == null ? "38.8951100" :(string)rteams.collection.items[i].data[(int)rteam_ht["location_latitude"]].value; ApplicationData.Current.LocalSettings.Values["team_latitude_" + teamsCollection.id] = (string)teamsCollection.location_latitude; teamsCollection.location_longitude = rteams.collection.items[i].data[(int)rteam_ht["location_longitude"]].value == null ? "-77.0363700" : (string)rteams.collection.items[i].data[(int)rteam_ht["location_longitude"]].value; ApplicationData.Current.LocalSettings.Values["team_longitude_" + teamsCollection.id] = (string)teamsCollection.location_longitude; teamsCollection.name = rteams.collection.items[i].data[(int)rteam_ht["name"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["name"]].value; teamsCollection.plan_id = rteams.collection.items[i].data[(int)rteam_ht["plan_id"]].value == null ? 0:(long)rteams.collection.items[i].data[(int)rteam_ht["plan_id"]].value; teamsCollection.season_name = rteams.collection.items[i].data[(int)rteam_ht["season_name"]].value == null ? "":(string)rteams.collection.items[i].data[(int)rteam_ht["season_name"]].value; teamsCollection.sport_id = rteams.collection.items[i].data[(int)rteam_ht["sport_id"]].value == null ? 0:(long)rteams.collection.items[i].data[(int)rteam_ht["sport_id"]].value; teamsCollection.sport_name = getSportName(teamsCollection.sport_id, rsports_ht); teamsCollection.pathToSportLogo = "images/" + teamsCollection.sport_id + ".png"; ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Updating Team " + teamsCollection.name; //teamsCollection.teamOwner = itemCollection.first_name + " " + itemCollection.last_name; mlb.writeToLogFile("Calling TeamAvailability API", false); mlb.makeAPICallandWriteToFile("teamAvailabilityAPI" + teamsCollection.id, (string)rteams.collection.items[i].links[(int)rteamlinks_ht["availabilities"]].href); mlb.writeToLogFile("Done calling TeamAvailability API and updating the availabilityfile", false); // make API call to fetch members for that particular team memberAPIResponse = await LibraryAPI.apiCall((string)ApplicationData.Current.LocalSettings.Values["Tokens"], memberslink); if (memberAPIResponse != "fail") { //deserialize the response rmembers = Members.membersDataDeserializer(memberAPIResponse); Hashtable rmember_ht = new Hashtable(); // use rmembers to store data about the members the team has for (int j = 0; j < rmembers.collection.items.Count; j++) { int idm = 0; // Debug.WriteLine("Adding values to rmember_ht"); while (idm < rmembers.collection.items[j].data.Count) { //Debug.WriteLine("Inside the while loop that adds values to rmember_ht"); try { if (!rmember_ht.Contains(rmembers.collection.items[j].data[idm].name)) { rmember_ht.Add(rmembers.collection.items[j].data[idm].name, idm); } idm++; } catch (Exception ex) { Debug.WriteLine(ex); var tc = new TelemetryClient(); await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": rmember_ht exception", true); tc.TrackEvent("rmember_ht exception : " + ex); } } ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Updating Team Members"; teammembers = new CollectionUsersTeamMembers(); await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Updating teammember", false); teammembers.address_city = rmembers.collection.items[j].data[(int)rmember_ht["address_city"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["address_city"]].value; teammembers.address_state = rmembers.collection.items[j].data[(int)rmember_ht["address_state"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["address_state"]].value; teammembers.address_street1 = rmembers.collection.items[j].data[(int)rmember_ht["address_street1"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["address_street1"]].value; teammembers.address_street2 = rmembers.collection.items[j].data[(int)rmember_ht["address_street2"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["address_street2"]].value; teammembers.address_zip = rmembers.collection.items[j].data[(int)rmember_ht["address_zip"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["address_zip"]].value; teammembers.birthday = rmembers.collection.items[j].data[(int)rmember_ht["birthday"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["birthday"]].value; teammembers.member_id = rmembers.collection.items[j].data[(int)rmember_ht["id"]].value == null ? 0 : (long)rmembers.collection.items[j].data[(int)rmember_ht["id"]].value; //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": member id " + teammembers.member_id); teammembers.first_name = rmembers.collection.items[j].data[(int)rmember_ht["first_name"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["first_name"]].value; ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Updating " + teammembers.first_name + " information"; teammembers.gender = rmembers.collection.items[j].data[(int)rmember_ht["gender"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["gender"]].value; teammembers.is_address_hidden = rmembers.collection.items[j].data[(int)rmember_ht["is_address_hidden"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["hide_address"]].value; teammembers.is_age_hidden = rmembers.collection.items[j].data[(int)rmember_ht["is_age_hidden"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["hide_age"]].value; teammembers.is_manager = rmembers.collection.items[j].data[(int)rmember_ht["is_manager"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["is_manager"]].value; teammembers.is_non_player = rmembers.collection.items[j].data[(int)rmember_ht["is_non_player"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["is_non_player"]].value; teammembers.jersey_number = rmembers.collection.items[j].data[(int)rmember_ht["jersey_number"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["jersey_number"]].value; //Debug.WriteLine("Jersey Number : " + ((bool)string.IsNullOrEmpty((string)rmembers.collection.items[j].data[24].value)) ? true : false ); teammembers.last_name = rmembers.collection.items[j].data[(int)rmember_ht["last_name"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["last_name"]].value; teammembers.position = rmembers.collection.items[j].data[(int)rmember_ht["position"]].value == null ? "":(string)rmembers.collection.items[j].data[(int)rmember_ht["position"]].value; teammembers.team_id = rmembers.collection.items[j].data[(int)rmember_ht["team_id"]].value == null ? 0:(long)rmembers.collection.items[j].data[(int)rmember_ht["team_id"]].value; teammembers.user_id = rmembers.collection.items[j].data[(int)rmember_ht["user_id"]].value == null ? 0 : (long)rmembers.collection.items[j].data[(int)rmember_ht["user_id"]].value; bool is_owner = rmembers.collection.items[j].data[(int)rmember_ht["is_owner"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["is_owner"]].value; /// if the current member is also the logged-in user, store that id in a separate object if (teammembers.user_id == rusers.items[0].id) { teamsCollection.loggedInUsersmemberID = teammembers.member_id; } if (is_owner == true) { teamsCollection.teamOwner = teammembers.first_name + " " + teammembers.last_name; teamsCollection.teamOwnerMemberId = teammembers.member_id; } bool is_manager = rmembers.collection.items[j].data[(int)rmember_ht["is_owner"]].value == null ? false : (bool)rmembers.collection.items[j].data[(int)rmember_ht["is_manager"]].value; if (is_manager == true) { teamsCollection.teamManagerName = teammembers.first_name + " " + teammembers.last_name; teamsCollection.teamManagerMemberId = teammembers.member_id; } //teammembers.updated_at = rmembers.collection.items[j].data[(int)rmember_ht["updated_at"]].value == null ? DateTime.MinValue : (DateTime)rmembers.collection.items[j].data[(int)rmember_ht["updated_at"]].value; /* Fetching Family Member Information */ ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Looking for " + teammembers.first_name + "'s family information"; await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": ****Calling Contacts, Contacts Phone and Contacts Email API for member : " + teammembers.member_id + "****", false); teammembers.fullname = teammembers.first_name + (teammembers.last_name == null ? "" : (" " + teammembers.last_name)); Debug.WriteLine("Member ID : " + teammembers.member_id); await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Updating member_photos", false); //teammembers.member_photo = "images/member_photo.jpg"; bool memberPhotofound = false; Debug.WriteLine("Running through all the links to find rel member_photo"); for (int m = 0; m < rmembers.collection.items[j].links.Count; m++) { //Debug.WriteLine("rel : " + rmembers.collection.items[j].links[m].rel); //Debug.WriteLine("m : " + m); if (rmembers.collection.items[j].links[m].rel == "member_thumbnail") { teammembers.member_thumbnail_uri = (string)rmembers.collection.items[j].links[m].href; } if (rmembers.collection.items[j].links[m].rel == "member_photo") { memberPhotofound = true; //Debug.WriteLine("Member Photo Exists"); Debug.WriteLine(rmembers.collection.items[j].links[m].href); string teammembers_member_photo = (string)rmembers.collection.items[j].links[m].href; try { ApplicationData.Current.LocalSettings.Values["CurrentStep"] = "Looking for changes to " + teammembers.first_name + "'s profile photo."; Debug.WriteLine("teammembers_member_photo : " + teammembers_member_photo); // await downloadImage(teammembers_member_photo, "member" + (teammembers.member_id).ToString()); //teammembers.member_photo = "ms-appdata:///local/member" + (teammembers.member_id).ToString() + "_scaled.png"; teammembers.member_photo_notscaled = "ms-appdata:///local/member" + (teammembers.member_id).ToString() + ".png"; if (String.IsNullOrEmpty(teammembers_member_photo)) { teammembers.member_photo_imagex_path = "images/member_photo.jpg"; teammembers.member_photo_imagex_uri = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png"; } else { //teammembers.member_photo_imagex_path = "ms-appdata:///temp/ImageCache/" + methodLibrary.BuildFileName(new Uri(teammembers_member_photo)); teammembers.member_photo_imagex_uri = teammembers_member_photo; } } catch (Exception ex) { Debug.WriteLine("Failed to download image"); teammembers.member_photo = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png"; teammembers.member_photo_imagex_uri = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png"; teammembers.member_thumbnail_uri = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png"; teammembers.member_photo_notscaled = "images/member_photo.jpg"; teammembers.member_photo_imagex_path = "images/member_photo.jpg"; await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": Failed to download image", false); } //} } } Debug.WriteLine("Photo Found : " + memberPhotofound); if(memberPhotofound == false) { Debug.WriteLine("Adding default photos to the teammembers link"); teammembers.member_photo = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png"; teammembers.member_photo_imagex_uri = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png"; teammembers.member_thumbnail_uri = "http://all4ed.org/wp-content/themes/all4ed/assets/images/avatar-placeholder-generic.png"; Debug.WriteLine("Finished adding default photos to the teammembers link"); } //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": All member photos have been updated"); Debug.WriteLine("Adding members to teamcollection"); teamsCollection.members.Add(teammembers); rmember_ht.Clear(); } } Debug.WriteLine("Adding teamCollection to rusers"); rusers.teams.Add(teamsCollection); //await mlb.writeToLogFile((DateTime.UtcNow).ToString() + ": teamCollection added to userClass"); rteam_ht.Clear(); rteamlinks_ht.Clear(); Debug.WriteLine("Done adding teamcollection to rusers"); //rsports_ht.Clear(); } await updateAvailability(rusers); Debug.WriteLine("MethodLibrary : End rTeam."); rsports_ht.Clear(); Debug.WriteLine("returning users"); return rusers; }