public void AddPlayerYear(AddPlayerYear cmd)
        {
            var repo = PopulateMyself(cmd.LahmanId);

            var existingYear = this.Years.FirstOrDefault(p => p.Year == cmd.Year);

            if (existingYear == null)
            {
                this.Years.Add(new PlayerYear()
                {
                    Average      = cmd.Average,
                    Doubles      = cmd.Doubles,
                    Hits         = cmd.Hits,
                    HomeRuns     = cmd.HomeRuns,
                    LahmanId     = cmd.LahmanId,
                    RunsBattedIn = cmd.RunsBattedIn,
                    Salary       = cmd.Salary,
                    StrikeOuts   = cmd.StrikeOuts,
                    Triples      = cmd.Triples,
                    Year         = cmd.Year,
                    TeamName     = cmd.TeamName
                });
            }
            else
            {
                existingYear = new PlayerYear()
                {
                    Average      = cmd.Average,
                    Doubles      = cmd.Doubles,
                    Hits         = cmd.Hits,
                    HomeRuns     = cmd.HomeRuns,
                    LahmanId     = cmd.LahmanId,
                    RunsBattedIn = cmd.RunsBattedIn,
                    Salary       = cmd.Salary,
                    StrikeOuts   = cmd.StrikeOuts,
                    Triples      = cmd.Triples,
                    Year         = cmd.Year,
                    TeamName     = cmd.TeamName
                };
            }


            repo.Save(this);

            ApplyEvent(new PlayerYearAdded()
            {
                Average      = cmd.Average,
                Doubles      = cmd.Doubles,
                FirstName    = FirstName,
                Hits         = cmd.Hits,
                HomeRuns     = cmd.HomeRuns,
                Id           = Id,
                LastName     = LastName,
                PlayerId     = PlayerId,
                RunsBattedIn = cmd.RunsBattedIn,
                Salary       = cmd.Salary,
                StrikeOuts   = cmd.StrikeOuts,
                Team         = cmd.TeamName,
                Triples      = cmd.Triples,
                Year         = cmd.Year
            });
        }
Beispiel #2
0
        public CardModule(ICardRepository repo)
        {
            _repo = repo;

            Get["/card/search"] = args =>
            {
                return(View["search.cshtml"]);
            };

            Post["/card/search"] = criteria =>
            {
                var req         = this.Bind <HitterSearch>();
                var searchModel = _repo.GetHitterSearch(req);
                return(View["results.cshtml", searchModel]);
            };

            Post["/card/facetsearch"] = criteria =>
            {
                var req         = this.Bind <HitterFacetSearch>();
                var searchModel = _repo.GetFacetedHitterSearch(req.YearStart, req.YearEnd, req.MaxSalary, req.MinHomeRuns, req.field, req.criteria);
                return(View["results.cshtml", searchModel]);
            };

            Get["/newcard"] = _ =>
            {
                Agile.Minimalist.Commands.Writer.ICommandWriter writer =
                    new Agile.Minimalist.Commands.Writer.CommandWriter();
                using (var conn = new SqlConnection("server=AGILE-L03\\DSHSQL08_1;initial catalog=Lahman2012;integrated security=true;"))
                {
                    using (var cmd = new SqlCommand("SELECT * FROM dbo.Master", conn))
                    {
                        cmd.Connection.Open();

                        using (var reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                var player = new CreatePlayer()
                                {
                                    Bats      = reader["Bats"].ToString(),
                                    College   = reader["College"].ToString(),
                                    Debut     = reader["debut"] == DBNull.Value ? default(DateTime?) : Convert.ToDateTime(reader["debut"]),
                                    FinalGame = reader["finalGame"] == DBNull.Value ? default(DateTime?) : Convert.ToDateTime(reader["finalGame"]),
                                    FirstName = reader["nameFirst"].ToString(),
                                    Height    = 75,
                                    LahmanId  = reader.GetInt32(reader.GetOrdinal("lahmanID")),
                                    LastName  = reader["nameLast"].ToString(),
                                    NickName  = reader["nameNick"].ToString(),
                                    PlayerId  = reader["playerID"].ToString(),
                                    Throws    = reader["Throws"].ToString(),
                                    Weight    = 150
                                };
                                writer.SendCommand(player);
                            }
                        }
                    }
                }

                return("new player submitted");
            };

            Get["/newcardstats"] = args =>
            {
                Agile.Minimalist.Commands.Writer.ICommandWriter writer =
                    new Agile.Minimalist.Commands.Writer.CommandWriter();
                using (var conn = new SqlConnection("server=AGILE-L03\\DSHSQL08_1;initial catalog=Lahman2012;integrated security=true;"))
                {
                    using (var cmd = new SqlCommand("SELECT * FROM dbo.BaseballHitters", conn))
                    {
                        cmd.Connection.Open();

                        using (var reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                var playerYear = new AddPlayerYear()
                                {
                                    Year         = Convert.ToInt32(reader["yearID"]),
                                    Average      = Convert.ToDouble(reader["average"] == DBNull.Value ? 0 : reader["average"]),
                                    Doubles      = Convert.ToInt32(reader["doubles"]),
                                    Hits         = Convert.ToInt32(reader["H"] == DBNull.Value ? 0 : reader["H"]),
                                    HomeRuns     = Convert.ToInt32(reader["HR"] == DBNull.Value ? 0 : reader["HR"]),
                                    LahmanId     = Convert.ToInt32(reader["lahmanID"]),
                                    RunsBattedIn = Convert.ToInt32(reader["rbi"]),
                                    Salary       = Convert.ToInt32(reader["salary"]),
                                    StrikeOuts   = Convert.ToInt32(reader["so"]),
                                    TeamName     = reader["teamName"].ToString(),
                                    Triples      = Convert.ToInt32(reader["triples"])
                                };
                                writer.SendCommand(playerYear);
                            }
                        }
                    }
                }

                return("player year submitted");
            };

            Get["/testcard"] = _ =>
            {
                var player = new CreatePlayer()
                {
                    Bats      = "R",
                    College   = "University of Notre Dame",
                    Debut     = DateTime.Now.AddYears(-10),
                    FinalGame = DateTime.Now.AddYears(-2),
                    FirstName = "David",
                    Height    = 74,
                    LahmanId  = 100000,
                    LastName  = "Hoerster",
                    NickName  = "Dave",
                    PlayerId  = "davehoerster",
                    Throws    = "R",
                    Weight    = 180
                };
                Agile.Minimalist.Commands.Writer.ICommandWriter writer =
                    new Agile.Minimalist.Commands.Writer.CommandWriter();
                writer.SendCommand(player);

                return("test player created!");
            };

            Get["/testcard/{year}"] = args =>
            {
                var playerYear = new AddPlayerYear()
                {
                    Average      = 0.275,
                    Doubles      = 25,
                    Hits         = 100,
                    HomeRuns     = 50,
                    LahmanId     = 100000,
                    RunsBattedIn = 75,
                    Salary       = 10000000,
                    StrikeOuts   = 3,
                    TeamName     = "Pittsburgh Pirates",
                    Triples      = 15,
                    Year         = args.year
                };
                Agile.Minimalist.Commands.Writer.ICommandWriter writer =
                    new Agile.Minimalist.Commands.Writer.CommandWriter();
                writer.SendCommand(playerYear);

                return("player year for year " + args.year + " created!");
            };
        }