Пример #1
0
        public object Build(IPocoMeta meta, IIdsMetasAndProxies idsMetasAndProxies) {
            if (idsMetasAndProxies.Pocos.ContainsKey(meta.Id))
                return idsMetasAndProxies.Pocos[meta.Id];

            var proxy = meta.Type.IsCollectionType()
                            ? CollectionProxyBuilder.BuildProxy(meta)
                            : PocoProxyBuilder.BuildProxy(meta);

            idsMetasAndProxies.Pocos.Add(meta.Id, proxy);
            idsMetasAndProxies.Ids.Add(proxy, meta.Id);

            return proxy;
        }
Пример #2
0
        public void Update(IPocoMeta meta) {
            if (!_lock.TryEnterWriteLock(TimeSpan.FromMilliseconds(100)))
                throw new ApplicationException("Could not enter write lock");

            try {
                if (!Metas.ContainsKey(meta.Id))
                    throw new ArgumentException("meta does not exist in store");

                Metas[meta.Id] = meta;
            }
            finally {
                _lock.ExitWriteLock();
            }
        }
Пример #3
0
        public void AddNew(IPocoMeta meta) {
            if (!_lock.TryEnterWriteLock(TimeSpan.FromMilliseconds(100)))
                throw new ApplicationException("Could not enter write lock");

            try {
                if (Metas.ContainsKey(meta.Id))
                    throw new ArgumentException("meta is already in store");

                Metas.Add(meta.Id, meta);
            }
            finally {
                _lock.ExitWriteLock();
            }
        }
Пример #4
0
 public AddedPoco(IPocoMeta meta) {
     Meta = meta;
 }