Esempio n. 1
0
        public IHttpActionResult GetTopGamesAsync()
        {
            var    repo      = new SteamRepository();
            string sTopGames = repo.GetTopGames();

            return(Ok(sTopGames));
        }
Esempio n. 2
0
        public IHttpActionResult GetGamesInCommon([FromBody] List <Player> data)
        {
            var repo   = new SteamRepository();
            var result = repo.GetGamesInCommon(data);

            return(Ok(result));
        }
Esempio n. 3
0
        public IHttpActionResult GetFriends(string steamId)
        {
            var repo    = new SteamRepository();
            var friends = repo.GetFriends(steamId);

            return(Ok(friends));
        }
Esempio n. 4
0
        public IHttpActionResult GetUser(string steamId)
        {
            var    ip     = HttpContext.Current.Request.UserHostAddress;
            Player player = new SteamRepository().GetUser(steamId, ip);

            return(Ok(player));
        }
Esempio n. 5
0
        public IHttpActionResult GetOwnedGames(string steamId)
        {
            // var req = SteamWebAPI.CustomRequest("IPlayerService", "GetOwnedGames", "v0001", new { steamid = steamId, include_appinfo = 1, include_played_free_games = 1 });
            // var responseString = req.GetResponseString(RequestFormat.JSON);

            var repo   = new SteamRepository();
            var result = repo.GetOwnedGames(steamId);


            return(Ok(result));
        }
Esempio n. 6
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        //static void Main()
        //{
        //    ServiceBase[] ServicesToRun;
        //    ServicesToRun = new ServiceBase[]
        //    {
        //        new MatchParserService()
        //    };
        //    ServiceBase.Run(ServicesToRun);
        //}
        static void Main(string[] args)
        {
            Dota2DbContext        dbContext             = new Dota2DbContext();
            IUnitOfWork           unitOfWork            = new UnitOfWork(dbContext);
            ITaskParserRepository taskRepository        = new TaskParserRepository(dbContext);
            ISteamRepository      onlineMatchRepository = new SteamRepository();
            IMatchRepository      matchRepository       = new MatchRepository(dbContext);
            ITasksParser          taskParser            = new TasksParser(taskRepository, onlineMatchRepository, matchRepository, unitOfWork);

#if DEBUG
            var service = new MatchParserService(taskParser);
            service.OnDebug();
            Thread.Sleep(Timeout.Infinite);
#else
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
            {
                new MatchParserService(taskParser),
            };
            ServiceBase.Run(ServicesToRun);
#endif
        }
        public void ApiNameMigration()
        {
            UserAchievement[]  communityAchievements;
            Data.Achievement[] dataAchievements;
            using (SteamRepository repository = new SteamRepository())
            {
                Dictionary <string, ICollection <UserAchievement> > userCommunityAchievements;
                using (
                    SteamCommunityManager communityManager =
                        new SteamCommunityManager(new WebClientWrapper(), new SteamProfileXmlParser(),
                                                  new GameXmlParser(), new AchievementXmlParser()))
                {
                    string[] invalidUserProfiles =
                        new[] { "0", "/zero_x9", "-vaka-", "inv4d3r", "barakitten", "76561198032315004", "120gb" };
                    var gameUsersQuery =
                        from userAchievement in repository.UserAchievements
                        where userAchievement.Achievement.ApiName.Length == 0 &&
                        !invalidUserProfiles.Contains(userAchievement.User.SteamUserId)
                        group userAchievement by userAchievement.Achievement.GameId
                        into g
                        select new { GameId = g.Key, SteamUserId = g.Min(ua => ua.User.SteamUserId) };

                    Dictionary <int, string> gameUsers = gameUsersQuery.OrderBy(s => s.GameId)
                                                         .ToDictionary(s => s.GameId, s => s.SteamUserId);

                    Debug.WriteLine(String.Join(", ", gameUsers.Keys));

                    userCommunityAchievements = new Dictionary <string, ICollection <UserAchievement> >();

                    foreach (string user in gameUsers.Values.Distinct().OrderBy(v => v))
                    {
                        try
                        {
                            ICollection <UserAchievement> userAchievements = communityManager.GetAchievements(user);
                            userCommunityAchievements.Add(user, userAchievements);
                        }
                        catch (Exception ex)
                        {
                            Debug.WriteLine("GetAchievements failed for user " + user + ".");
                            Debug.WriteLine(ex);
                            if (ex.InnerException != null)
                            {
                                Debug.WriteLine(ex.InnerException);
                            }
                        }
                    }
                }

                communityAchievements =
                    userCommunityAchievements.Values.SelectMany(v => v.Select(ua => ua)).OrderBy(ua => ua.Game.Id)
                    .OrderBy(ua => ua.AchievementApiName).Distinct().ToArray();

                Serialize("CommunityAchievements.xml", communityAchievements);

                dataAchievements = repository.Achievements.ToArray();
                foreach (Data.Achievement dataAchievement in dataAchievements)
                {
                    UserAchievement achievement =
                        communityAchievements
                        .Where(a =>
                               a.Game.Id == dataAchievement.GameId &&
                               a.Name.ToUpper() == dataAchievement.Name.ToUpper() &&
                               a.Description.ToUpper() == dataAchievement.Description.ToUpper())
                        .FirstOrDefault();
                    if (achievement != null)
                    {
                        dataAchievement.ApiName = achievement.AchievementApiName;
                        //Debug.WriteLine("Id: {0}, GameId: {1}, Name: {2}, ApiName: {3}",
                        //                dataAchievement.Id, dataAchievement.GameId,
                        //                dataAchievement.Name, dataAchievement.ApiName);
                    }
                }

                Serialize("UpdatedApiNameAchievements.xml", dataAchievements.ToArray());

                ChangeSet changeSet = repository.Context.GetChangeSet();
                Debug.WriteLine(changeSet);
                repository.SubmitChanges();
            }
            //Assert.That(changeSet.Updates, Is.Not.Empty);

            Debug.WriteLine("Total Data Achievements: " + dataAchievements.Length);
            Debug.WriteLine("Total Community Achievements: " + communityAchievements.Length);
        }