private void GrabData(string treeName) { //TreeModel Data TreeModel = new EnhancementTreeModel(); if (treeName != "_New Enhancement Tree_") { TreeModel.Initialize(treeName); } //SlotModels Data and associated trackers SlotModels = new List <EnhancementSlotModel>(); SlotChanged = new List <bool>(); SlotDeleted = new List <bool>(); for (int i = 0; i < 31; i++) { SlotModels.Add(new EnhancementSlotModel()); SlotModels[i].Initialize(EnhancementSlotModel.GetIdFromTreeIdandSlotIndex(TreeModel.Id, i)); SlotChanged.Add(false); SlotDeleted.Add(false); } }
private void buttonDuplicateRecord_Click(object sender, EventArgs e) { string selection; EnhancementTreeModel newTreeModel = new EnhancementTreeModel(); List <EnhancementTreeRequirementModel> newTreeRequirementModels = new List <EnhancementTreeRequirementModel>(); List <EnhancementSlotModel> newSlotModels = new List <EnhancementSlotModel>(); List <EnhancementModel> newEnhancementModels = new List <EnhancementModel>(); List <EnhancementRankModel> newEnhancementRankModels = new List <EnhancementRankModel>(); List <EnhancementRankModifierModel> newEnhancementRankModifierModels = new List <EnhancementRankModifierModel>(); List <EnhancementRankRequirementModel> newEnhancementRankRequirementModels = new List <EnhancementRankRequirementModel>(); Guid oldSlotId; Guid oldEnhancementId; Guid oldRankId; Guid oldModifierId; Guid oldRequirementId; //Copy the Tree Model First newTreeModel.Initialize(TreeModel.Id); newTreeModel.ConvertToNewRecord(); newTreeModel.Name = TreeModel.Name + "Duplicate"; newTreeModel.Save(); //Copy the Tree Requirement Models newTreeRequirementModels = EnhancementTreeRequirementModel.GetAll(TreeModel.Id); foreach (EnhancementTreeRequirementModel etrm in newTreeRequirementModels) { etrm.ConvertToNewRecord(); etrm.EnhancementTreeId = newTreeModel.Id; etrm.Save(); } //Copy the Slot Models newSlotModels = EnhancementSlotModel.GetAll(TreeModel.Id); foreach (EnhancementSlotModel slot in newSlotModels) { oldSlotId = slot.Id; slot.ConvertToNewRecord(); slot.EnhancementTreeId = newTreeModel.Id; slot.Save(); //Copy the Enhancements for this Slot Model. newEnhancementModels = EnhancementModel.GetAll(oldSlotId); foreach (EnhancementModel em in newEnhancementModels) { oldEnhancementId = em.Id; em.ConvertToNewRecord(); em.EnhancementSlotId = slot.Id; em.Save(); //Copy the Enhancement Ranks for this Enhancement. newEnhancementRankModels = EnhancementRankModel.GetAll(oldEnhancementId); foreach (EnhancementRankModel erm in newEnhancementRankModels) { oldRankId = erm.Id; erm.ConvertToNewRecord(); erm.EnhancementId = em.Id; erm.Save(); //Copy the Enhancement Rank Modifier Models newEnhancementRankModifierModels = EnhancementRankModifierModel.GetAll(oldRankId); foreach (EnhancementRankModifierModel ermm in newEnhancementRankModifierModels) { oldModifierId = ermm.Id; ermm.ConvertToNewRecord(); ermm.EnhancementRankId = erm.Id; ermm.Save(); } //Copy the Enhancement Rank Requirement Models newEnhancementRankRequirementModels = EnhancementRankRequirementModel.GetAll(oldRankId); foreach (EnhancementRankRequirementModel errm in newEnhancementRankRequirementModels) { oldRequirementId = errm.Id; errm.ConvertToNewRecord(); errm.EnhancementRankId = erm.Id; errm.Save(); } } } } //Now lets update our screen with the new record selection = newTreeModel.Name; EnhancementTreeListBox.Items.Clear(); PopulateEnhancementTreeListBox(); //AllowChangeEvents = false; EnhancementTreeListBox.SelectedItem = selection; //AllowChangeEvents = true; //Now we can reset our flags RecordChanged = false; NewRecord = false; }