public IEntityCollection CreateCollection(string name) { var pool = EntityCollectionFactory.Create(name); _pools.Add(name, pool); EventSystem.Publish(new PoolAddedEvent(pool)); return(pool); }
public IEntityCollection CreateCollection(int id) { var collection = EntityCollectionFactory.Create(id); _collections.Add(collection); SubscribeToCollection(collection); _onCollectionAdded.OnNext(collection); return(collection); }
/// <summary> /// The persist updated item. /// </summary> /// <param name="entity"> /// The entity. /// </param> protected override void PersistUpdatedItem(IEntityCollection entity) { ((Entity)entity).UpdatingEntity(); var factory = new EntityCollectionFactory(); var dto = factory.BuildDto(entity); Database.Update(dto); entity.ResetDirtyProperties(); }
public IEntityCollection CreateCollection(string name) { var collection = EntityCollectionFactory.Create(name); _collections.Add(name, collection); SubscribeToCollection(collection); _onCollectionAdded.OnNext(collection); return(collection); }
/// <summary> /// The persist updated item. /// </summary> /// <param name="entity"> /// The entity. /// </param> protected override void PersistUpdatedItem(IEntityCollection entity) { ((Entity)entity).UpdatingEntity(); var factory = new EntityCollectionFactory(); var dto = factory.BuildDto(entity); Database.Update(dto); entity.ResetDirtyProperties(); RuntimeCache.ClearCacheItem(Cache.CacheKeys.GetEntityCacheKey <IEntityCollection>(entity.Key)); RuntimeCache.ClearCacheItem(Cache.CacheKeys.GetEntityCacheKey <IEntityFilterGroup>(entity.Key)); }
/// <summary> /// The get entity collections by customer key. /// </summary> /// <param name="customerKey"> /// The customer key. /// </param> /// <returns> /// The <see cref="IEnumerable{IEntityCollection}"/>. /// </returns> public IEnumerable <IEntityCollection> GetEntityCollectionsByCustomerKey(Guid customerKey) { var sql = this.GetBaseQuery(false) .Append("WHERE [merchEntityCollection].[pk] IN (") .Append("SELECT DISTINCT([entityCollectionKey])") .Append("FROM [merchCustomer2EntityCollection]") .Append("WHERE [merchCustomer2EntityCollection].[customerKey] = @ckey", new { @ckey = customerKey }) .Append(")"); var dtos = Database.Fetch <EntityCollectionDto>(sql); var factory = new EntityCollectionFactory(); return(dtos.Select(factory.BuildEntity)); }
/// <summary> /// The perform get. /// </summary> /// <param name="key"> /// The key. /// </param> /// <returns> /// The <see cref="IEntityCollection"/>. /// </returns> protected override IEntityCollection PerformGet(Guid key) { var sql = GetBaseQuery(false) .Where(GetBaseWhereClause(), new { Key = key }); var dto = Database.Fetch <EntityCollectionDto>(sql).FirstOrDefault(); if (dto == null) { return(null); } var factory = new EntityCollectionFactory(); var collection = factory.BuildEntity(dto); return(collection); }
/// <summary> /// The perform get all. /// </summary> /// <param name="keys"> /// The keys. /// </param> /// <returns> /// The <see cref="IEnumerable{IEntityCollection}"/>. /// </returns> protected override IEnumerable <IEntityCollection> PerformGetAll(params Guid[] keys) { var dtos = new List <EntityCollectionDto>(); if (keys.Any()) { // This is to get around the WhereIn max limit of 2100 parameters and to help with performance of each WhereIn query var keyLists = keys.Split(400).ToList(); // Loop the split keys and get them foreach (var keyList in keyLists) { dtos.AddRange(Database.Fetch <EntityCollectionDto>(GetBaseQuery(false).WhereIn <EntityCollectionDto>(x => x.Key, keyList, SqlSyntax))); } } else { dtos = Database.Fetch <EntityCollectionDto>(GetBaseQuery(false)); } var factory = new EntityCollectionFactory(); foreach (var dto in dtos) { yield return(factory.BuildEntity(dto)); } //TODO - Keeping original code for now //if (keys.Any()) //{ // foreach (var id in keys) // { // yield return Get(id); // } //} //else //{ // var dtos = Database.Fetch<EntityCollectionDto>(GetBaseQuery(false)); // foreach (var dto in dtos) // { // yield return Get(dto.Key); // } //} }
/// <summary> /// The persist new item. /// </summary> /// <param name="entity"> /// The entity. /// </param> protected override void PersistNewItem(IEntityCollection entity) { var query = entity.ParentKey == null ? Querying.Query <IEntityCollection> .Builder.Where(x => x.ProviderKey == entity.ProviderKey && x.EntityTfKey == entity.EntityTfKey) : Querying.Query <IEntityCollection> .Builder.Where(x => x.ParentKey == entity.ParentKey); var sortOrder = this.Count(query); ((EntityCollection)entity).SortOrder = sortOrder; ((Entity)entity).AddingEntity(); var factory = new EntityCollectionFactory(); var dto = factory.BuildDto(entity); Database.Insert(dto); entity.Key = dto.Key; entity.ResetDirtyProperties(); }
/// <summary> /// The perform get all. /// </summary> /// <param name="keys"> /// The keys. /// </param> /// <returns> /// The <see cref="IEnumerable{IEntityCollection"/>. /// </returns> protected override IEnumerable <IEntityCollection> PerformGetAll(params Guid[] keys) { if (keys.Any()) { foreach (var id in keys) { yield return(Get(id)); } } else { var factory = new EntityCollectionFactory(); var dtos = Database.Fetch <EntityCollectionDto>(GetBaseQuery(false)); foreach (var dto in dtos) { yield return(factory.BuildEntity(dto)); } } }