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; }
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(); } }
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(); } }
public AddedPoco(IPocoMeta meta) { Meta = meta; }