public static VetFarmTree GetSpecies(string sessionId, long key, string name, long?idfSpecies, HACode haCode) { var list = ModelStorage.Get(sessionId, key, name) as EditableList <VetFarmTree>; if (list == null) { return(null); } var rootobj = ModelStorage.GetRoot(sessionId, key, null) as IObject; VetFarmTree item; using (DbManagerProxy manager = DbManagerFactory.Factory.Create(ModelUserContext.Instance)) { VetFarmTree parent; if (idfSpecies == null || idfSpecies.Value == 0) { parent = CreateHerdOrFlock(sessionId, key, name, haCode); item = VetFarmTree.Accessor.Instance(null).CreateSpecies(manager, rootobj, parent); item._HACode = (int)haCode; } else { item = list.Where(t => t.idfParty == idfSpecies).First(); parent = list.Where(x => x.idfParty == item.idfParentParty).FirstOrDefault(); } ModelStorage.Put(sessionId, key, item.idfParty, null, item); ModelStorage.Put(sessionId, key, parent.idfParty, null, parent); return(item); } }
private static VetFarmTree CreateHerdOrFlock(string sessionId, long key, string name, HACode haCode) { var list = ModelStorage.Get(sessionId, key, name) as EditableList <VetFarmTree>; var rootobj = ModelStorage.GetRoot(sessionId, key, null) as IObject; using (DbManagerProxy manager = DbManagerFactory.Factory.Create(ModelUserContext.Instance)) { var item = VetFarmTree.Accessor.Instance(null).CreateHerd(manager, rootobj, list.Where(v => v.idfParentParty == null).FirstOrDefault()); item._HACode = (int)haCode; return(item); } }