Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }