Ejemplo n.º 1
0
 public void Import(string data)
 {
     var games = _gameParser.Parse(data);
     using (var ctx = _contextFactory.Create())
     {
         var gamesInDb = ctx.Games.ToList();
         bool add = true;
         var gameComparer = new GameComparer();
         foreach (var game in games)
         {
             foreach (var gameInDb in gamesInDb)
             {
                 if (gameComparer.Equals(game, gameInDb))
                 {
                     add = false;
                     break;
                 }
             }
             if (add)
             {
                 ctx.Games.Add(game);
             }
         }
         ctx.SaveChanges();
     }
 }
Ejemplo n.º 2
0
 static void Main()
 {
     var lines = File.ReadAllLines("data.txt").Where(x => x.Trim() != "").ToArray();
     File.WriteAllLines("data.txt", lines);
     int i = StartLine;
     var gameComparer = new GameComparer();
     using (var ctx = new LolStatModel())
     {
         var gamesInDb = ctx.Games.ToList();
         while (i < lines.Length - 1)
         {
             var level = Int32.Parse(lines[++i]);
             var champ = lines[++i];
             var map = lines[++i];
             var gameType = lines[++i];
             var kda = lines[++i].Split('/').Select(Int32.Parse).ToArray();
             var kills = kda[0];
             var deaths = kda[1];
             var assists = kda[2];
             var creepScore = Int32.Parse(lines[++i]);
             var gold = Double.Parse(lines[++i].Replace("k", "")) * 1000d;
             var timeLine = lines[++i].Split(':').Select(Int32.Parse).ToArray();
             bool overAnHour = timeLine.Length > 2;
             TimeSpan time = overAnHour
                 ? new TimeSpan(timeLine[0], timeLine[1], timeLine[2])
                 : new TimeSpan(0, timeLine[0], timeLine[1]);
             var date = DateTime.Parse(lines[++i]);
             var newGame = new Game
             {
                 Level = level,
                 Assists = assists,
                 ChampionID = ctx.Champions.Single(x => x.Name == champ).ID,
                 MapID = ctx.Maps.Single(x => x.Name == map).ID,
                 GameTypeID = ctx.GameTypes.Single(x => x.Name == gameType).ID,
                 Kills = kills,
                 Deaths = deaths,
                 Date = date,
                 CreepScore = creepScore,
                 Gold = gold,
                 Time = time
             };
             bool add = true;
             foreach (var game in gamesInDb)
             {
                 if (gameComparer.Equals(game, newGame))
                 {
                     add = false;
                     break;
                 }
             }
             if (add)
             {
                 ctx.Games.Add(newGame);
                 ctx.SaveChanges();
             }
         }
     }
 }
Ejemplo n.º 3
0
        public void Check_That_Game_Comparer_Throws_Exception_When_Obj1_And_Obj2_Have_Wrong_Type()
        {
            var comparer = new GameComparer();

            var obj1 = new Object();
            var obj2 = new Object();

            comparer.AreEqual(obj1, obj2);
        }
Ejemplo n.º 4
0
        public void Check_That_Game_Comparer_Returns_True_For_Equal_Games()
        {
            var game1 = new Game
            {
                GameId          = 1,
                NorthwindId     = 1,
                OrderItems      = new List <OrderItem>(),
                AddedDate       = new DateTime(),
                BasketItems     = new List <BasketItem>(),
                Comments        = new List <Comment>(),
                Discontinued    = false,
                Genres          = new List <Genre>(),
                IsReadonly      = true,
                Key             = "key",
                PlatformTypes   = new List <PlatformType>(),
                Price           = 5,
                PublicationDate = DateTime.UtcNow,
                Publisher       = new Publisher
                {
                    PublisherLocalizations = new List <PublisherLocalization>
                    {
                        new PublisherLocalization
                        {
                            CompanyName = "name",
                            Description = "description",
                            LanguageId  = 1,
                            Language    = new Language
                            {
                                Name       = "English",
                                Code       = "en",
                                LanguageId = 1,
                            }
                        }
                    }
                },
                PublisherId       = 5,
                UnitsInStock      = 6,
                GameLocalizations = new List <GameLocalization>
                {
                    new GameLocalization
                    {
                        Language = new Language
                        {
                            Code       = "en",
                            Name       = "English",
                            LanguageId = 1
                        },
                        Name        = "name",
                        Description = "description",
                    }
                }
            };

            var game2 = new Game
            {
                GameId          = 1,
                NorthwindId     = 1,
                OrderItems      = new List <OrderItem>(),
                AddedDate       = new DateTime(),
                BasketItems     = new List <BasketItem>(),
                Comments        = new List <Comment>(),
                Discontinued    = false,
                Genres          = new List <Genre>(),
                IsReadonly      = true,
                Key             = "key",
                PlatformTypes   = new List <PlatformType>(),
                Price           = 5,
                PublicationDate = DateTime.UtcNow,
                Publisher       = new Publisher
                {
                    PublisherLocalizations = new List <PublisherLocalization>
                    {
                        new PublisherLocalization
                        {
                            CompanyName = "name",
                            Description = "description",
                            LanguageId  = 1,
                            Language    = new Language
                            {
                                Name       = "English",
                                Code       = "en",
                                LanguageId = 1,
                            }
                        }
                    }
                },
                PublisherId       = 5,
                UnitsInStock      = 6,
                GameLocalizations = new List <GameLocalization>
                {
                    new GameLocalization
                    {
                        Language = new Language
                        {
                            Code       = "en",
                            Name       = "English",
                            LanguageId = 1
                        },
                        Name        = "name",
                        Description = "description",
                    }
                }
            };

            var comparer = new GameComparer();

            bool result = comparer.AreEqual(game1, game2);

            Assert.IsTrue(result);
        }