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; } }
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(); } }
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")); }