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(); } }
public void TestCanAddSingleItem() { ISessionFactory fac = RomViewContainer.Container.GetInstance <ISessionFactory>(); ISession session = fac.OpenSession(); ITransaction tx = session.BeginTransaction(); CallSessionContext.Bind(session); try { IRepository <QuestDefinition> rep = RomViewContainer.Container.GetInstance <IRepository <QuestDefinition> >(); IQuestRepository repository = new QuestRepository(rep); QuestChain chain = new QuestChain() { Name = "Saving a Marriage" }; IRepository <QuestChain> chainRep = RomViewContainer.Container.GetInstance <IRepository <QuestChain> >(); try { chain = chainRep.SaveOrUpdate(chain); } catch { } QuestDefinition def = new QuestDefinition() { RomId = 423924, Name = "Act First and Report Later", MinLevel = 25, Level = 27, StarterId = 117396, EnderId = 117396, Gold = 1515, XP = 17301, TP = 1730, RewardCategory = RewardCategory.Armor, RewardSubCategory = RewardSubCategory.Head, ChainIndex = 4, QuestChain = chain }; IRepository <ItemDefinition> idef = RomViewContainer.Container.GetInstance <IRepository <ItemDefinition> >(); ItemRepository irep = new ItemRepository(idef); ItemDefinition item = irep.GetByRomId(228250); item.ItemType = "armor"; item.ItemSubType = "cloth"; item.ItemSubSubType = "head"; item.Value = 196; irep.UpdateItem(item); QuestReward reward = new QuestReward() { Item = item, RewardIndex = 1, RewardType = "Cloth", Quest = def }; def.Rewards.Add(reward); item = irep.GetByRomId(228251); item.ItemType = "armor"; item.ItemSubType = "leather"; item.ItemSubSubType = "head"; item.Value = 261; irep.UpdateItem(item); reward = new QuestReward() { Item = item, RewardIndex = 2, RewardType = "Leather", Quest = def }; def.Rewards.Add(reward); repository.Add(def); } finally { tx.Rollback(); session.Close(); } }