Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }