Esempio n. 1
0
        public ActionResult New(SpeciesForm form)
        {
            Debug.WriteLine(string.Format("POST: Species Controller: New - gameID={0}", GameState.GameID));
            var game = GameState.Game;

            DB_species species = new DB_species();

            species.game_id             = game.Info.id;
            species.name                = form.Name;
            species.description         = form.Description;
            species.base_attack         = form.BaseAttack;
            species.base_special_attack = form.BaseSpecialAttack;
            species.base_health         = form.BaseHealth;
            species.base_regeneration   = form.BaseRegeneration;
            species.base_agility        = form.BaseAgility;
            species.gmnotes             = form.GMNotes;
            Database.Session.Save(species);

            var checkedCivilizations = form.Civilizations
                                       .Where(x => x.IsChecked)
                                       .ToList();

            foreach (var civilizations in checkedCivilizations)
            {
                DB_civilization_species civilizationSpecies = new DB_civilization_species();
                civilizationSpecies.game_id         = game.ID;
                civilizationSpecies.civilization_id = civilizations.ID;
                civilizationSpecies.species_id      = species.id;
                Database.Session.Save(civilizationSpecies);
            }

            Database.Session.Flush();
            return(RedirectToRoute("Statistics"));
        }
        private async void btnAddTaxon_Click(object sender, RoutedEventArgs e)
        {
            SpeciesForm form = new SpeciesForm()
            {
                TransactionForm   = "Add Species",
                IsMaintenance     = false,
                PrimaryButtonText = "Save"
            };
            var result = await form.ShowAsync();

            if (result == ContentDialogResult.Primary)
            {
                var    NewData    = form.SpeciesData;
                string authorCode = "";
                try
                {
                    authorCode = (from data in speciesAuthors
                                  where data.AuthorName == NewData.SpeciesAuthor
                                  select data.AuthorSuffix).First();
                }
                catch (Exception) {  }

                NewData.ScientificName = (NewData.GenusName + " " + NewData.SpeciesName + " " + authorCode).Trim();
                NewSpecies             = NewData;

                cbxScientificName.Visibility = Visibility.Collapsed;
                btnAddTaxon.Visibility       = Visibility.Collapsed;
                txfScientificName.Visibility = Visibility.Visible;
                btnDeleteTaxon.Visibility    = Visibility.Visible;
            }
        }
Esempio n. 3
0
        private async void LoadForm(string transaction, TaxonSpecies species = null)
        {
            SpeciesForm form = new SpeciesForm()
            {
                TransactionForm   = transaction,
                SpeciesData       = (species == null) ? new TaxonSpecies() : species,
                PrimaryButtonText = (transaction == "Add Species") ? "Save" : "Update"
            };
            var result = await form.ShowAsync();

            if (result == ContentDialogResult.Primary)
            {
                string message = "";

                switch (form.TransactionResult)
                {
                case 0:
                    message = (form.TransactionForm == "Add Species") ? "Species Inserted to the Database" : "Species Updated in the Database";
                    break;

                case 1:
                    message = "The System had run to an Error";
                    break;

                case 2:
                    message = "Information is Already Exists in the Database";
                    break;
                }

                MessageDialog dialog = new MessageDialog(message);
                await dialog.ShowAsync();

                this.InitializePage();
            }
        }
Esempio n. 4
0
        public ActionResult Edit(SpeciesForm form)
        {
            Debug.WriteLine(string.Format("POST: Species Controller: Edit - speciesID={0}", form.ID));
            var game = GameState.Game;

            DB_species species = game.GameStatistics.Species.Find(x => x.id == form.ID);

            if (species.game_id == null || species.game_id != game.Info.id)
            {
                return(RedirectToRoute("game", new { gameID = game.Info.id }));
            }

            species.name                = form.Name;
            species.description         = form.Description;
            species.base_attack         = form.BaseAttack;
            species.base_special_attack = form.BaseSpecialAttack;
            species.base_health         = form.BaseHealth;
            species.base_regeneration   = form.BaseRegeneration;
            species.base_agility        = form.BaseAgility;
            species.gmnotes             = form.GMNotes;
            Database.Session.Update(species);

            var civilizationSpecies = Database.Session.Query <DB_civilization_species>()
                                      .Where(x => x.species_id == species.id)
                                      .ToList();

            var checkedCivilizations = form.Civilizations
                                       .Where(x => x.IsChecked)
                                       .ToList();

            List <DB_civilization_species> toRemove = new List <DB_civilization_species>();
            List <Checkbox> toAdd = new List <Checkbox>();

            foreach (var civSpecie in civilizationSpecies)
            {
                bool foundMatch = false;

                // First determine what to remove
                foreach (var checkBox in checkedCivilizations)
                {
                    // Civilization is already set
                    if (civSpecie.civilization_id == checkBox.ID)
                    {
                        foundMatch = true;
                        break;
                    }
                }

                // No longer an Upgrade to this Infrastructure
                if (!foundMatch)
                {
                    toRemove.Add(civSpecie);
                }
            }

            // Next determine what is new
            foreach (var checkBox in checkedCivilizations)
            {
                bool foundMatch = false;
                foreach (var civSpecie in civilizationSpecies)
                {
                    // Infrastructure Upgrade is already set
                    if (checkBox.ID == civSpecie.civilization_id)
                    {
                        foundMatch = true;
                        break;
                    }
                }

                // We have a new upgrade
                if (!foundMatch)
                {
                    toAdd.Add(checkBox);
                }
            }

            // Now apply the changes
            foreach (var remove in toRemove)
            {
                Database.Session.Delete(remove);
            }
            foreach (var add in toAdd)
            {
                Database.Session.Save(new DB_civilization_species(species.id, add.ID, game.Info.id));
            }

            Database.Session.Flush();
            return(RedirectToRoute("Statistics"));
        }