/// <summary> /// /// </summary> /// <param name="groupKey"></param> /// <param name="key"></param> /// <param name="entityData"></param> /// <param name="periodTime"></param> /// <returns></returns> public bool AddOrUpdateGroup(string groupKey, string key, T entityData, int periodTime) { bool result = false; CacheItemSet itemSet = InitGroupContainer(groupKey, periodTime); if (itemSet != null && !Equals(entityData, default(T))) { entityData.IsInCache = true; var data = (BaseCollection)itemSet.GetItem(); T oldValue; if (data.TryGetValue(key, out oldValue)) { result = data.TryUpdate(key, entityData, oldValue); } else { result = data.TryAdd(key, entityData); } if (itemSet.LoadingStatus == LoadingStatus.None) { itemSet.OnLoadSuccess(); } } return(result); }
/// <summary> /// /// </summary> /// <param name="groupKey"></param> /// <param name="key"></param> /// <param name="entityData"></param> /// <param name="periodTime"></param> /// <returns></returns> public bool AddOrUpdateGroup(string groupKey, string key, T entityData, int periodTime) { bool result = false; CacheItemSet itemSet = InitGroupContainer(groupKey, periodTime); if (itemSet != null && !Equals(entityData, default(T))) { var data = (BaseCollection)itemSet.GetItem(); result = data.AddOrUpdate(key, entityData, (k, t) => entityData) == entityData; if (result) { var temp = entityData as AbstractEntity; CheckEventBind(temp); entityData.IsInCache = true; if (temp != null && (temp.IsNew || temp.HasChanged)) { entityData.TriggerNotify(); } if (itemSet.LoadingStatus == LoadingStatus.None) { itemSet.OnLoadSuccess(); } } } return(result); }
/// <summary> /// /// </summary> /// <param name="groupKey"></param> /// <param name="key"></param> /// <param name="entityData"></param> /// <param name="periodTime"></param> /// <returns></returns> public bool TryAddGroup(string groupKey, string key, T entityData, int periodTime) { CacheItemSet itemSet = InitGroupContainer(groupKey, periodTime); if (itemSet != null) { if (!Equals(entityData, default(T)) && ((BaseCollection)itemSet.GetItem()).TryAdd(key, entityData)) { return(true); } } return(false); }
/// <summary> /// /// </summary> /// <param name="groupKey"></param> /// <param name="key"></param> /// <param name="entityData"></param> /// <param name="periodTime"></param> /// <returns></returns> public bool TryAddGroup(string groupKey, string key, T entityData, int periodTime) { CacheItemSet itemSet = InitGroupContainer(groupKey, periodTime); if (itemSet != null) { if (!Equals(entityData, default(T)) && ((BaseCollection)itemSet.GetItem()).TryAdd(key, entityData)) { entityData.IsInCache = true; entityData.TriggerNotify(); itemSet.OnLoadSuccess(); return(true); } } return(false); }
/// <summary> /// /// </summary> /// <param name="groupKey"></param> /// <param name="key"></param> /// <param name="entityData"></param> /// <param name="periodTime"></param> /// <returns></returns> public bool AddOrUpdateGroup(string groupKey, string key, T entityData, int periodTime) { CacheItemSet itemSet = InitGroupContainer(groupKey, periodTime); if (itemSet != null && !Equals(entityData, default(T))) { var data = (BaseCollection)itemSet.GetItem(); T oldValue; if (data.TryGetValue(key, out oldValue)) { return(data.TryUpdate(key, entityData, oldValue)); } return(data.TryAdd(key, entityData)); } return(false); }
/// <summary> /// /// </summary> /// <param name="groupKey"></param> /// <param name="key"></param> /// <param name="entityData"></param> /// <param name="periodTime"></param> /// <param name="isLoad"></param> /// <returns></returns> public bool TryAddGroup(string groupKey, string key, T entityData, int periodTime, bool isLoad = false) { CacheItemSet itemSet = InitGroupContainer(groupKey, periodTime); if (itemSet != null) { if (!Equals(entityData, default(T)) && ((BaseCollection)itemSet.GetItem()).TryAdd(key, entityData)) { CheckEventBind(entityData as AbstractEntity); if (!isLoad) { entityData.TriggerNotify(); } entityData.IsInCache = true; return(true); } } return(false); }
/// <summary> /// /// </summary> /// <param name="groupKey"></param> /// <param name="key"></param> /// <param name="entityData"></param> /// <param name="periodTime"></param> /// <param name="isLoad"></param> /// <returns></returns> public bool AddOrUpdateGroup(string groupKey, string key, T entityData, int periodTime, bool isLoad = false) { bool result = false; CacheItemSet itemSet = InitGroupContainer(groupKey, periodTime); if (itemSet != null && !Equals(entityData, default(T))) { var data = (BaseCollection)itemSet.GetItem(); result = data.AddOrUpdate(key, entityData, (k, t) => entityData) == entityData; if (result) { var temp = entityData as AbstractEntity; CheckEventBind(temp); if (!isLoad) { entityData.TriggerNotify(); } entityData.IsInCache = true; } } return(result); }