public void ImportFromQuestListXML() { ISessionFactory fac = RomViewContainer.Container.GetInstance <ISessionFactory>(); ISession session = fac.OpenSession(); ITransaction tx = session.BeginTransaction(); CallSessionContext.Bind(session); //LazySessionContext.Bind(new Lazy<ISession>(() => session), fac); try { IRepository <QuestDefinition> rep = RomViewContainer.Container.GetInstance <IRepository <QuestDefinition> >(); IQuestRepository repository = new QuestRepository(rep); IList <QuestDefinition> items = repository.GetAll(); string filename = "Data\\questlist.xml"; if (!File.Exists(filename)) { throw new Exception("File missing"); } list data = new list(); data = list.LoadFromFile(filename); XmlDocument doc = new XmlDocument(); doc.Load(filename); XmlNodeList quests = doc.SelectNodes("//romquest"); foreach (XmlNode romquest in quests) { int id = Convert.ToInt32(romquest.Attributes["id"].Value); string name = romquest.Attributes["name"].Value; QuestDefinition quest = items.FirstOrDefault(definition => definition.RomId == id); if (quest == null) { quest = new QuestDefinition() { RomId = id, Name = name }; repository.Add(quest); } else { quest.RomId = id; quest.Name = name; repository.Update(quest); } } tx.Commit(); } finally { session.Close(); } }
protected override void Save() { var ContentTemplate = this.ContentTemplate as QuestTemplate; // Persist rewards ContentTemplate.Rewards = questRewardEditor1.Rewards; ContentTemplate.QuestSteps = questStepEditor1.Steps; using (var db = new GameDatabaseContext()) { var repository = new QuestRepository(db); repository.Update(ContentTemplate, ContentTemplate.Id); } base.Save(); }