public OpenDota(string apiKey = null, IWebProxy proxy = null) { _request = new RequestHandler(apiKey, proxy); _jsonFormatter = new JsonFormatter(_request); Matches = new MatchesEndpoint(_jsonFormatter); PlayersByRank = new PlayersByRankEndpoint(_jsonFormatter); Players = new PlayersEndpoint(_jsonFormatter, _request); ProPlayers = new ProPlayersEndpoint(_jsonFormatter); ProMatches = new ProMatchesEndpoint(_jsonFormatter); PublicMatches = new PublicMatchesEndpoint(_jsonFormatter); ParsedMatches = new ParsedMatchesEndpoint(_jsonFormatter); Metadata = new MetadataEndpoint(_jsonFormatter); Distributions = new DistributionsEndpoint(_jsonFormatter); Search = new SearchEndpoint(_jsonFormatter); Rankings = new RankingsEndpoint(_jsonFormatter); Benchmarks = new BenchmarksEndpoint(_jsonFormatter); Status = new StatusEndpoint(_jsonFormatter); Health = new HealthEndpoint(_jsonFormatter); Request = new RequestEndpoint(_jsonFormatter, _request); FindMatches = new FindMatchesEndpoint(_jsonFormatter); Heroes = new HeroesEndpoint(_jsonFormatter); HeroStats = new HeroStatsEndpoint(_jsonFormatter); Leagues = new LeaguesEndpoint(_jsonFormatter); Teams = new TeamsEndpoint(_jsonFormatter); Replays = new ReplaysEndpoint(_jsonFormatter); Records = new RecordsEndpoint(_jsonFormatter); Live = new LiveEndpoint(_jsonFormatter); Scenarios = new ScenariosEndpoint(_jsonFormatter); Schema = new SchemaEndpoint(_jsonFormatter); Constants = new ConstantsEndpoint(_request); }
void loadProfile() { int progressValue = 0; try{ // initialise the loading progress bar SetStatusProgressThreadSafe(statusBar, "Step", 1); SetStatusProgressThreadSafe(statusBar, "Maximum", 4); SetStatusProgressThreadSafe(statusBar, "Value", progressValue); _tm = new AccessTokenManager(_client_id, _client_secret, "https://www.facebook.com/connect/login_success.html", _token); //Retrieve URIs for HealthGraph endpoints. SetStatusTextThreadSafe(statusBar, "Loading available HealthPoint endpoints..."); _userRequest = new UsersEndpoint(_tm); _user = _userRequest.GetUser(); SetStatusProgressThreadSafe(statusBar, "Value", ++progressValue); // Load the Profile information SetStatusTextThreadSafe(statusBar, "Loading user profile information..."); ProfileEndpoint profile = new ProfileEndpoint(_tm, _user); ProfileModel userProfile = profile.GetProfile(); SetControlPropertyThreadSafe(pbProfileMedium, "ImageLocation", userProfile.SmallPicture); SetControlPropertyThreadSafe(lblProfileName, "Text", userProfile.Name); SetControlPropertyThreadSafe(lblGender, "Text", userProfile.Gender); SetControlPropertyThreadSafe(lblAthleteType, "Text", userProfile.AthleteType); SetControlPropertyThreadSafe(lblDob, "Text", ((DateTime)userProfile.Birthday).ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture)); SetControlPropertyThreadSafe(lblProfile, "Text", userProfile.Profile); //lblProfile.Links.Add(0,0,userProfile.Profile); SetControlPropertyThreadSafe(lblLocation, "Text", userProfile.Location); if (userProfile.Elite) { SetControlPropertyThreadSafe(pbElite, "Visible", true); } else { SetControlPropertyThreadSafe(pbElite, "Visible", false); } SetStatusProgressThreadSafe(statusBar, "Value", ++progressValue); // Load the Street Team information SetStatusTextThreadSafe(statusBar, "Loading StreetTeam information..."); StreetTeamEndpoint team = new StreetTeamEndpoint(_tm, _user); FeedModel <StreetTeamFeedItemModel> streetteam = team.GetFeedPage(0, 25); for (int st = 0; st < streetteam.Items.Count; st++) { string [] sti = { streetteam.Items[st].Name, streetteam.Items[st].Profile, streetteam.Items[st].Uri }; AddListViewItem(lstStreetTeam, new ListViewItem(sti)); } SetStatusProgressThreadSafe(statusBar, "Value", ++progressValue); // Load the Records information SetStatusTextThreadSafe(statusBar, "Loading user Records information..."); RecordsEndpoint records = new RecordsEndpoint(_tm, _user); List <RecordsFeedItemModel> userRecords = records.GetRecordsFeed(); for (int r = 0; r < userRecords.Count; r++) { if (userRecords[r].ActivityType == "Cycling") { for (int s = 0; s < userRecords[r].Stats.Count; s++) { string recdistance = userRecords[r].Stats[s].Value.ToString(); if (userRecords[r].Stats[s].StatType == "OVERALL") { recdistance = ((Convert.ToDouble(recdistance) / 1000) * 0.621371192).ToString(); // convert to miles } string [] rec = { userRecords[r].Stats[s].StatType, ((DateTime)userRecords[r].Stats[s].Date).ToString("dd/MM/yyyy"), string.Format("{0:0.00}", Convert.ToDouble(recdistance)) }; AddListViewItem(lstRecords, new ListViewItem(rec)); } } } SetStatusProgressThreadSafe(statusBar, "Value", ++progressValue); // Load the activities information SetStatusTextThreadSafe(statusBar, "Loading activities..."); FitnessActivitiesEndpoint activities = new FitnessActivitiesEndpoint(_tm, _user); int userActivitiesPage = 0; int userActivitiesPerPage = 25; FeedModel <FitnessActivitiesFeedItemModel> userActivities = activities.GetFeedPage(userActivitiesPage, userActivitiesPerPage); SetControlPropertyThreadSafe(lblTotalActivities, "Text", userActivities.Size.ToString() + " Activities"); int userActivitiesCount = userActivities.Size; int loadingCount = 0; SetStatusProgressThreadSafe(statusBar, "Maximum", userActivities.Size); SetStatusProgressThreadSafe(statusBar, "Value", loadingCount); for (userActivitiesPage = 0; userActivitiesPage <= Convert.ToInt32(Math.Ceiling(Convert.ToDouble(userActivitiesCount / userActivitiesPerPage))); userActivitiesPage++) { // if not first page, load the next page if (userActivitiesPage > 0) { userActivities = activities.GetFeedPage(userActivitiesPage, userActivitiesPerPage); } for (int a = 0; a < userActivities.Items.Count; a++) { SetStatusProgressThreadSafe(statusBar, "Value", ++loadingCount); TimeSpan duration = TimeSpan.FromSeconds(userActivities.Items[a].Duration); string duration_f = string.Format("{0:D2} h {1:D2} m {2:D2} s", duration.Hours, duration.Minutes, duration.Seconds ); string [] arec = { userActivities.Items[a].Type, userActivities.Items[a].StartTime.ToString("dd/MM/yyyy HH:mm:ss"), duration_f, string.Format("{0:0.00 miles}", (userActivities.Items[a].TotalDistance / 1000) * 0.621371192), string.Format("{0:0.00} mph", ((userActivities.Items[a].TotalDistance / 1000) * 0.621371192) / (userActivities.Items[a].Duration / 3600)), userActivities.Items[a].Uri }; AddListViewItem(lstActivities, new ListViewItem(arec)); } } ResizeListView(lstActivities); SetStatusTextThreadSafe(statusBar, "Done."); } catch (HealthGraphException he) { MessageBox.Show(he.ToString()); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally{ SetControlPropertyThreadSafe(lstActivities, "Enabled", true); } }