예제 #1
0
        public static RosterEntry Add(RosterEntry entry)
        {
            using (var db = new FFStatsDbContext())
            {
                db.RosterEntries.Add(entry);
                db.SaveChanges();
            }

            return(entry);
        }
예제 #2
0
 public void Setup()
 {
     entry = new RosterEntry()
     {
         Id       = 1,
         PlayerId = 3,
         TeamId   = 4
     };
     ctx    = new SqlContext();
     engine = new RosterEntryEngine(ctx);
 }
        public void TestInsertRosterEntry()
        {
            RosterEntry entry = new RosterEntry()
            {
                Id       = 1,
                PlayerId = 3,
                TeamId   = 4
            };

            repo.Insert(entry);
            Assert.IsTrue(ctx.RosterEntries.Any(c => c.Id == 1));
        }
예제 #4
0
        public void TestExists()
        {
            engine.Save(entry);
            RosterEntry entry2 = new RosterEntry()
            {
                Id       = 1,
                PlayerId = 3,
                TeamId   = 5
            };

            Assert.IsTrue(engine.Exists(entry2));
        }
        public void TestRosterEntyExists()
        {
            RosterEntry entry = new RosterEntry()
            {
                Id       = 1,
                PlayerId = 3,
                TeamId   = 4
            };

            repo.Insert(entry);

            Assert.IsTrue(repo.Exists(entry));
        }
예제 #6
0
        public void TestDeleteRosterEntry()
        {
            RosterEntry entry = new RosterEntry()
            {
                Id       = 1,
                PlayerId = 3,
                TeamId   = 4
            };

            repo.Insert(entry);
            repo.Delete(entry);

            Assert.AreEqual(0, ctx.RosterEntries.Count());
        }
예제 #7
0
        public void TestSaveUpdateNoId()
        {
            engine.Save(entry);
            RosterEntry entry2 = new RosterEntry()
            {
                Id       = 0,
                PlayerId = 3,
                TeamId   = 5
            };

            engine.Save(entry2);

            Assert.AreEqual(1, ctx.RosterEntries.Count());
            Assert.IsNotNull(ctx.RosterEntries.Where(c => c.Id == 1 && c.TeamId == 5).FirstOrDefault());
            Assert.IsNotNull(ctx.Transactions.Where(c => c.NewTeamId == 5 && c.PlayerId == 3 && c.OldTeamId == 4).FirstOrDefault());
        }
        public void TestRosterEntryNotExists()
        {
            RosterEntry entry = new RosterEntry()
            {
                Id       = 1,
                PlayerId = 3,
                TeamId   = 4
            };

            repo.Insert(entry);

            RosterEntry entry2 = new RosterEntry()
            {
                Id       = 1,
                PlayerId = 4,
                TeamId   = 5
            };

            Assert.IsFalse(repo.Exists(entry2));
        }
        public void TestGetRosterEntries()
        {
            RosterEntry entry = new RosterEntry()
            {
                Id       = 1,
                PlayerId = 3,
                TeamId   = 4
            };

            repo.Insert(entry);

            RosterEntry entry2 = new RosterEntry()
            {
                Id       = 2,
                PlayerId = 4,
                TeamId   = 5
            };

            repo.Insert(entry2);
            Assert.AreEqual(2, repo.GetRosterEntries().Count());
        }
        public void TestGetRosterEntry()
        {
            RosterEntry entry = new RosterEntry()
            {
                Id       = 1,
                PlayerId = 3,
                TeamId   = 4
            };

            repo.Insert(entry);

            RosterEntry entry2 = new RosterEntry()
            {
                Id       = 2,
                PlayerId = 4,
                TeamId   = 5
            };

            repo.Insert(entry2);

            Assert.IsNotNull(repo.GetRosterEntry(2));
        }
예제 #11
0
        public void TestUpdateRosterEntry()
        {
            RosterEntry entry = new RosterEntry()
            {
                Id       = 1,
                PlayerId = 3,
                TeamId   = 4
            };

            repo.Insert(entry);

            RosterEntry entry2 = new RosterEntry()
            {
                Id       = 1,
                PlayerId = 3,
                TeamId   = 5
            };

            repo.Update(entry2);

            Assert.IsTrue(ctx.RosterEntries.Any(c => c.Id == 1 && c.TeamId == 5));
            Assert.AreEqual(1, ctx.RosterEntries.Count());
        }
예제 #12
0
파일: Program.cs 프로젝트: jonasah/ffstats
        static WeekRosters ParseFile(string path)
        {
            Console.WriteLine($"Parsing: {path}");

            // extract year and week from file name
            var fileName      = Path.GetFileNameWithoutExtension(path);
            var fileNameMatch = Regex.Match(fileName, @"(\d{4})-w(\d{1,2})");
            var year          = int.Parse(fileNameMatch.Groups[1].Value);
            var week          = int.Parse(fileNameMatch.Groups[2].Value);

            var weekRosters = new WeekRosters
            {
                Year    = year,
                Week    = week,
                Rosters = new List <Roster>()
            };

            var reader = new StreamReader(path);

            while (!reader.EndOfStream)
            {
                var line = reader.ReadLine();

                if (TeamNames.Contains(line))
                {
                    var dbTeamName = line;

                    // renamed teams
                    if (line == "Hooked on a Thielen")
                    {
                        dbTeamName = "Retro Hawks";
                    }
                    else if (line == "ImJustHereSoIWontGetHigh")
                    {
                        dbTeamName = "Nangijala IF";
                    }
                    else if (line == "Wentz Upon A Time")
                    {
                        dbTeamName = "Kings of the North";
                    }

                    weekRosters.Rosters.Add(new Roster
                    {
                        Team    = dbTeamName,
                        Entries = new List <RosterEntry>()
                    });
                }
                else if (RosterPositions.Contains(line))
                {
                    var rosterPosStr = (line == "W/R" ? "FLX" : line);

                    var entry = new RosterEntry
                    {
                        RosterPosition = Enum.Parse <Position>(rosterPosStr)
                    };

                    var playerLine = reader.ReadLine();

                    if (playerLine.Contains("--empty--"))
                    {
                        continue;
                    }

                    if (playerLine.EndsWith("View Videos"))
                    {
                        var nextLine = reader.ReadLine();

                        if (nextLine.Contains("Bye"))
                        {
                            entry.IsByeWeek = true;
                            // status and stat line is on 'next' line
                        }
                        else
                        {
                            // skip status and stat lines
                            reader.ReadLine();
                            reader.ReadLine();
                        }
                    }
                    else if (playerLine.Contains("Bye"))
                    {
                        entry.IsByeWeek = true;
                        // status and stat line is on player line
                    }
                    else
                    {
                        // skip status and stat lines
                        reader.ReadLine();
                        reader.ReadLine();
                    }

                    // extract player name and position from player line
                    // (assume that player name ends with lowercase character)
                    var playerMatch = Regex.Match(playerLine, @"([A-Za-z0-9' \.-]+[a-z])([A-Z]{1,3})(\s|View)");
                    entry.PlayerName     = playerMatch.Groups[1].Value;
                    entry.PlayerPosition = Enum.Parse <Position>(playerMatch.Groups[2].Value);

                    // fix names for relocated teams
                    if (entry.PlayerName == "Los Angeles Rams" && year < 2016)
                    {
                        entry.PlayerName = "St. Louis Rams";
                    }
                    else if (entry.PlayerName == "Los Angeles Chargers" && year < 2017)
                    {
                        entry.PlayerName = "San Diego Chargers";
                    }

                    // parse points line
                    var pointsLine = reader.ReadLine();
                    entry.Points = double.Parse(pointsLine, CultureInfo.InvariantCulture);

                    weekRosters.Rosters.Last().Entries.Add(entry);
                }
            }

            return(weekRosters);
        }
 public void Delete(RosterEntry rosterEntry)
 {
     base.Delete(rosterEntry);
 }
 public RosterEntry Update(RosterEntry rosterEntry)
 {
     return(base.Update(rosterEntry));
 }
 public RosterEntry Insert(RosterEntry rosterEntry)
 {
     return(Add(rosterEntry));
 }
        public bool Exists(RosterEntry rosterEntry)
        {
            Expression <Func <RosterEntry, bool> > doesExist = c => c.PlayerId == rosterEntry.PlayerId;

            return(Query(doesExist).Count() > 0);
        }