Ejemplo n.º 1
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            //var factory = new DbContextFactory();
            //var context = factory.CreateDbContext(null);

            //var monster = new Monster { Name = "Green Blob", Damage = 1, Hp = 2, MissRate = 80 };
            //context.Monsters.Add(monster);

            ////using (var ts = new TransactionScope())
            ////{

            //context.Players.Add(new Player { Name = "Foglol", Exp = 0, Hp = 20, MaxHp = 20 });
            //context.SaveChanges();

            //var player = context.Players.Where(player => player.Name == "Foglol").FirstOrDefault();

            //var cell = new Cell { CanMoveTo = true, Description = "A beautiful forest", MonsterRate = 20, PosX = 0, PosY = 0, ItemRate = 60, PlayerId = (int)player.Id };
            //var cell2 = new Cell { CanMoveTo = true, Description = "A Dangerous Magma Lake", MonsterRate = 80, PosX = 0, PosY = 1, ItemRate = 90, PlayerId = (int)player.Id };

            //context.Cells.Add(cell);
            //context.Entry<Cell>(cell).State = EntityState.Detached;

            //context.Cells.Add(cell2);
            //context.Entry<Cell>(cell2).State = EntityState.Detached;

            ////player.Cells.Add(cell);
            ////player.Cells.Add(cell2);

            //context.SaveChanges();

            //var playerAfterUpdate = context.Players.Where(player => player.Name == "Foglol").FirstOrDefault();


            ////ts.Complete();
            ////}

            // Create or get instance of access layers
            var monstersAccessLayer = MonstersAccessLayer.GetInstance();
            var playersAccessLayer  = PlayersAccessLayer.GetInstance();
            var cellsAccessLayer    = CellsAccessLayer.GetInstance();

            // Add a monster
            await monstersAccessLayer.AddAsync(new Monster { Name = "Blue Blob", Damage = 1, Hp = 2, MissRate = 80 });

            // Add a player
            await playersAccessLayer.AddAsync(new Player { Name = "Foglol", Exp = 0, Hp = 20, MaxHp = 20 });

            var player = playersAccessLayer.GetSingle(p => p.Name == "Foglol");

            // Create some cells for the player
            var cell = new Cell {
                CanMoveTo = true, Description = "A beautiful forest", MonsterRate = 20, PosX = 0, PosY = 0, ItemRate = 60, PlayerId = (int)player.Id
            };
            var cell2 = new Cell {
                CanMoveTo = true, Description = "A Dangerous Magma Lake", MonsterRate = 80, PosX = 0, PosY = 1, ItemRate = 90, PlayerId = (int)player.Id
            };

            await cellsAccessLayer.AddAsync(cell);

            await cellsAccessLayer.AddAsync(cell2);

            // expect that the player has refs to cells objects
            var updatedPlayer = playersAccessLayer.GetSingle(p => p.Id == player.Id, true);

            Console.WriteLine(updatedPlayer.Cells.Count);
            Console.WriteLine("Hey bro it's ok !");
        }