private void Game_delete_btn_Click(object sender, RoutedEventArgs e)
        {
            var game = new Game()
            {
                Id          = int.Parse(game_id_textbox.Text),
                CityId      = int.Parse(city_id_combobox.Text),
                PlayerOneId = int.Parse(fighter_one_id_combobox.Text),
                PlayerTwoId = int.Parse(fighter_two_id_combobox.Text),
                GameResult  = game_result_combobox.Text,
            };

            using (var db = new LppDB())
            {
                var result = db.Games
                             .Where(g => g.Id == game.Id)
                             .Delete();

                if (result == 1)
                {
                    MessageBox.Show("Game row deleted inserted successfully!");
                }
            }

            this.updateGamesDataGrid();
            this.updateFightersDataGrid();
        }
 private int getLastGameId()
 {
     using (var db = new LppDB())
     {
         var games = (from game in db.Games
                      orderby game.Id ascending
                      select game.Id).ToList();
         return(games.Last());
     }
 }
 private ObservableCollection <City> getAllCities()
 {
     using (var db = new LppDB())
     {
         var cities = (from city in db.Cities
                       orderby city.Id ascending
                       select city).ToList();
         return(new ObservableCollection <City>(cities));
     }
 }
 private void updateCitiesDataGrid()
 {
     using (var db = new LppDB())
     {
         var cities = from city in db.Cities
                      orderby city.Id ascending
                      select city;
         CitiesDataGrid.ItemsSource = cities;
     }
     city_id_textbox.Text = (this.getAllCities().Last().Id + 1).ToString();
 }
 private void updateGamesDataGrid()
 {
     using (var db = new LppDB())
     {
         var games = from game in db.Games
                     orderby game.Id ascending
                     select game;
         Game_datagrid.ItemsSource = games;
     }
     game_id_textbox.Text = (this.getLastGameId() + 1).ToString();
 }
        private void Fighter_add_btn_Click(object sender, RoutedEventArgs e)
        {
            var player = new Player()
            {
                Id   = int.Parse(fighter_id_textbox.Text),
                Name = fighter_name_textbox.Text,
            };

            using (var db = new LppDB())
            {
                var result = db.Players
                             .Value(p => p.Id, player.Id)
                             .Value(c => c.Name, player.Name)
                             .Insert();

                if (result == 1)
                {
                    MessageBox.Show("Player row inserted successfully!");
                }
            }
            this.updateFightersDataGrid();
        }
        private void Game_add_btn_Click(object sender, RoutedEventArgs e)
        {
            var game = new Game()
            {
                Id          = int.Parse(game_id_textbox.Text),
                CityId      = int.Parse(city_id_combobox.Text),
                PlayerOneId = int.Parse(fighter_one_id_combobox.Text),
                PlayerTwoId = int.Parse(fighter_two_id_combobox.Text),
                GameResult  = game_result_combobox.Text,
            };

            if (game.PlayerOneId == game.PlayerTwoId)
            {
                MessageBox.Show("Player id's must be different!");
            }
            else
            {
                using (var db = new LppDB())
                {
                    var result = db.Games
                                 .Value(g => g.Id, game.Id)
                                 .Value(gc => gc.CityId, game.CityId)
                                 .Value(gp1 => gp1.PlayerOneId, game.PlayerOneId)
                                 .Value(gp2 => gp2.PlayerTwoId, game.PlayerTwoId)
                                 .Value(gr => gr.GameResult, game.GameResult)
                                 .Insert();

                    if (result == 1)
                    {
                        MessageBox.Show("Game row inserted successfully!");
                    }
                }
                this.updateGamesDataGrid();
                this.updateFightersDataGrid();
            }
        }
        private ObservableCollection <Fighter> getAllFighters()
        {
            using (var db = new LppDB())
            {
                var fighters = (from game in db.Games
                                from player in db.Players
                                where game.PlayerOneId == player.Id || game.PlayerTwoId == player.Id
                                group game by player into pg
                                orderby pg.Key.Id ascending
                                let score = pg.Sum(g => (g.PlayerOneId == pg.Key.Id && g.GameResult.ToString() == "Player1") ||
                                                   (g.PlayerTwoId == pg.Key.Id && g.GameResult.ToString() == "Player2")
                                                        ? 1.0f : g.GameResult.ToString() == "Draw"
                                                        ? 0.5f : 0.0f)
                                            select new Fighter()
                {
                    Id = pg.Key.Id,
                    Name = pg.Key.Name,
                    Score = score,
                }).ToList();

                var allFighters = from fighter in db.Players
                                  select fighter;
                // Set player score for recet added player taht don't have played any game.
                foreach (var fighter in allFighters)
                {
                    if (fighters.All(f => f.Id != fighter.Id))
                    {
                        fighters.Add(new Fighter()
                        {
                            Id = fighter.Id, Name = fighter.Name, Score = 0.0f
                        });
                    }
                }
                return(new ObservableCollection <Fighter>(fighters));
            }
        }
        private void cityAUD(OperationType operation)
        {
            String msg    = "";
            var    result = 0;
            var    city   = new City()
            {
                Id   = int.Parse(city_id_textbox.Text),
                Name = city_name_textbox.Text,
            };

            try
            {
                switch (operation)
                {
                case OperationType.INSERT:

                    using (var db = new LppDB())
                    {
                        result = db.Cities
                                 .Value(c => c.Id, city.Id)
                                 .Value(c => c.Name, city.Name)
                                 .Insert();

                        if (result == 1)
                        {
                            msg = "Row inserted successfully!";
                        }
                    }
                    break;

                case OperationType.UPDATE:
                    using (var db = new LppDB())
                    {
                        result = db.Cities
                                 .Where(c => c.Id == city.Id)
                                 .Set(c => c.Name, city.Name)
                                 .Update();

                        if (result == 1)
                        {
                            msg = "Row updated successfully!";
                        }
                    }
                    break;

                case OperationType.DELETE:
                    using (var db = new LppDB())
                    {
                        result = db.Cities
                                 .Where(c => c.Id == city.Id)
                                 .Delete();

                        if (result == 1)
                        {
                            msg = "Row deleted successfully!";
                        }
                    }
                    break;
                }

                if (result > 0)
                {
                    MessageBox.Show(msg);
                    this.updateCitiesDataGrid();
                }
            }
            catch (Exception e) { }
        }