public void Remove(SimulatorConfigElement serviceConfig)
 {
     BaseRemove(serviceConfig.Type);
 }
Ejemplo n.º 2
0
        private static void RunSoccerSimulator(SoccerSimulator simulator, SimulatorConfigElement simulatorConfigElement)
        {
            if (!string.IsNullOrWhiteSpace(simulatorConfigElement.ConfigUri))
                SettingsFactory.SetConfigUri(simulatorConfigElement.ConfigUri);
            if (!string.IsNullOrWhiteSpace(simulatorConfigElement.RootElementName))
                SettingsFactory.RootElementName = simulatorConfigElement.RootElementName;

            var config = SettingsFactory.GetConfig();

            //simulator.Settings = SettingsFactory.GetSettings();
            simulator.Settings = config.Settings;

            if (config.DataFactory != null)
            {
                DataFactory = config.DataFactory;
            }

            var simulationData = DataFactory.Generate().WaitForResult();
            var result = simulator.Simulate(simulationData);

            for (var i = 0; i < result.PlayerResults.Count; i++)
            {
                var gameweek = result.PlayerResults.Keys.Cast<Gameweek>().ElementAt(i);
                var players = (IEnumerable<SoccerSimulationPlayerResult>) result.PlayerResults.Values.ElementAt(i);
                var positionGroups = players.GroupBy(x => x.Player.Fantasy.Position);

                Console.WriteLine("Gameweek #{0}", gameweek.Number);
                foreach (var group in positionGroups)
                {
                    Console.WriteLine("Position: {0}", group.Key);
                    foreach (var playerRes in group)
                    {
                        var playerRecPtsStr = "";
                        var teamRecPtsStr = "";
                        if (playerRes.PlayerRecommendations.Any())
                        {
                            foreach (var rec in playerRes.PlayerRecommendations)
                            {
                                playerRecPtsStr += string.Format("{0}: {1}  |  ", rec.Type, rec.Points);
                            }
                            playerRecPtsStr = playerRecPtsStr.Substring(0, playerRecPtsStr.LastIndexOf("  |  "));
                        }

                        if (playerRes.TeamRecommendations.Any())
                        {
                            foreach (var rec in playerRes.TeamRecommendations)
                            {
                                teamRecPtsStr += string.Format("{0}: {1}  |  ", rec.Type, rec.Points);
                            }
                            teamRecPtsStr = teamRecPtsStr.Substring(0, teamRecPtsStr.LastIndexOf("  |  "));
                        }

                        //Console.WriteLine("{0} [{1}] \t\t--- rec.pts: {2}", playerRes.Player.DisplayName, playerRes.Player.Rating, playerRes.RecommendationPoints);
                        //Console.WriteLine("{0} [{1}] \t\t--- rec.pts: {2} \t\t\t\t--- {3}", playerRes.Player.DisplayName, playerRes.Player.Rating, playerRes.RecommendationPoints, playerRecPtsStr);
                        //Console.WriteLine("{0} [{1}] \t\t--- rec.pts: {2} \t\t\t\t--- P.Rec: {3}\t--- T.Rec: {4}", playerRes.Player.DisplayName, playerRes.Player.Rating, playerRes.RecommendationPoints, playerRecPtsStr, teamRecPtsStr);
                        var msg = $"{playerRes.Player.DisplayName} [{playerRes.Player.Rating}] \t\t-- rec.pts: {playerRes.RecommendationPoints} \t\t-- P.Rec: {playerRecPtsStr}\t-- T.Rec: {teamRecPtsStr}";
                        Console.WriteLine(msg);
                    }
                    Console.WriteLine();
                }
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();
            }

            // todo: export as csv/excel? detailed report, with the team-vs-team, estimated points, recommendation points
        }
 public void Add(SimulatorConfigElement serviceConfig)
 {
     BaseAdd(serviceConfig);
 }