/// <summary> /// remove entitys /// </summary> /// <param name="datas">datas</param> /// <param name="activationOption">activation option</param> /// <returns></returns> protected virtual void RemoveEntity(IEnumerable <ET> datas, ActivationOption activationOption = null) { var record = RemoveEntityAsync(datas, activationOption).Result; if (record != null) { WorkFactory.RegisterActivationRecord(record); } }
/// <summary> /// remove entity /// </summary> /// <param name="datas"></param> protected virtual void RemoveEntity(params ET[] datas) { var record = RemoveEntityAsync(datas).Result; if (record != null) { WorkFactory.RegisterActivationRecord(record); } }
/// <summary> /// save by third datas /// </summary> /// <param name="datas">datas</param> public sealed override void SaveByThird(IEnumerable<Third> datas) { var saveRecords = ExecuteSaveByThirdAsync(datas).Result; if (saveRecords.IsNullOrEmpty()) { return; } RepositoryEventBus.PublishSave<Third>(GetType(), datas); WorkFactory.RegisterActivationRecord(saveRecords.ToArray()); }
/// <summary> /// save async /// </summary> /// <param name="datas">datas</param> public sealed override async Task SaveAsync(IEnumerable<Tuple<First, Second, Third>> datas) { var records = await ExecuteSaveAsync(datas).ConfigureAwait(false); if (records.IsNullOrEmpty()) { return; } RepositoryEventBus.PublishSave<Tuple<First, Second, Third>>(GetType(), datas); WorkFactory.RegisterActivationRecord(records.ToArray()); }
/// <summary> /// save by second type datas /// </summary> /// <param name="datas">datas</param> /// <param name="activationOption">activation option</param> public sealed override void SaveBySecond(IEnumerable <Second> datas, ActivationOption activationOption = null) { var saveRecords = ExecuteSaveBySecondAsync(datas, activationOption).Result; if (saveRecords.IsNullOrEmpty()) { return; } RepositoryEventBus.PublishSave(GetType(), datas, activationOption); WorkFactory.RegisterActivationRecord(saveRecords.ToArray()); }
/// <summary> /// remove by second datas /// </summary> /// <param name="datas">datas</param> public sealed override void RemoveBySecond(IEnumerable <Second> datas) { var removeRecord = ExecuteRemoveBySecond(datas); if (removeRecord == null) { return; } RepositoryEventBus.PublishRemove(GetType(), datas); WorkFactory.RegisterActivationRecord(removeRecord); }
/// <summary> /// remove by condition /// </summary> /// <param name="query">query</param> public sealed override async Task RemoveAsync(IQuery query) { var record = await ExecuteRemoveAsync(query).ConfigureAwait(false); if (record == null) { return; } RepositoryEventBus.PublishRemove <Tuple <First, Second> >(GetType(), query); WorkFactory.RegisterActivationRecord(record); }
/// <summary> /// Modify Object /// </summary> /// <param name="expression">modify expression</param> /// <param name="query">query model</param> public sealed override async Task ModifyAsync(IModify expression, IQuery query) { var record = await ExecuteModifyAsync(expression, query).ConfigureAwait(false); if (record == null) { return; } RepositoryEventBus.PublishModify <DT>(GetType(), expression, query); WorkFactory.RegisterActivationRecord(record); }
/// <summary> /// remove by condition /// </summary> /// <param name="query">query</param> /// <param name="activationOption">activation option</param> public sealed override async Task RemoveAsync(IQuery query, ActivationOption activationOption = null) { //append condition query = AppendRemoveCondition(query); var record = await ExecuteRemoveAsync(query, activationOption).ConfigureAwait(false); if (record == null) { return; } RepositoryEventBus.PublishRemove <Tuple <First, Second, Third> >(GetType(), query, activationOption); WorkFactory.RegisterActivationRecord(record); }
/// <summary> /// modify data /// </summary> /// <param name="expression">modify expression</param> /// <param name="query">query object</param> /// <param name="activationOption">activation option</param> public sealed override async Task ModifyAsync(IModify expression, IQuery query, ActivationOption activationOption = null) { //append condition query = AppendModifyCondition(query); var record = await ExecuteModifyAsync(expression, query, activationOption).ConfigureAwait(false); if (record == null) { return; } RepositoryEventBus.PublishModify <T>(GetType(), expression, query, activationOption); WorkFactory.RegisterActivationRecord(record); }
/// <summary> /// Remove Object /// </summary> /// <param name="query">query model</param> public sealed override async Task RemoveAsync(IQuery query) { //query filter query = GlobalQueryFilter(query); query = RemoveQueryFilter(query); var record = await ExecuteRemoveAsync(query).ConfigureAwait(false); if (record == null) { return; } RepositoryEventBus.PublishRemove <DT>(GetType(), query); WorkFactory.RegisterActivationRecord(record); }
/// <summary> /// Remove Objects /// </summary> /// <param name="objDatas">objects</param> public sealed override async Task RemoveAsync(params DT[] objDatas) { #region Verify Parameters if (objDatas == null || objDatas.Length <= 0) { throw new Exception("objDatas is null or empty"); } foreach (var obj in objDatas) { if (obj == null) { throw new Exception("remove object data is null"); } if (!obj.CanBeRemove) { throw new Exception("object data cann't to be remove"); } } #endregion var records = new List <IActivationRecord>(objDatas.Length); foreach (var data in objDatas) { var record = await ExecuteRemoveAsync(data).ConfigureAwait(false);//execute remove if (record == null) { continue; } records.Add(record); } RepositoryEventBus.PublishRemove(GetType(), objDatas); WorkFactory.RegisterActivationRecord(records.ToArray()); }
/// <summary> /// save datas /// </summary> /// <param name="datas">datas</param> /// <param name="activationOption">activation option</param> public sealed override async Task SaveAsync(IEnumerable <T> datas, ActivationOption activationOption = null) { #region verify parameters if (datas.IsNullOrEmpty()) { throw new Exception($"{nameof(datas)} is null or empty"); } foreach (var obj in datas) { if (obj == null) { continue; } if (!obj.CanBeSave) { throw new Exception("data cann't to be save"); } } #endregion var records = new List <IActivationRecord>(datas.Count()); foreach (var data in datas) { var record = await ExecuteSaveAsync(data, activationOption).ConfigureAwait(false);//execute save if (record == null) { continue; } records.Add(record); } RepositoryEventBus.PublishSave(GetType(), datas, activationOption); WorkFactory.RegisterActivationRecord(records.ToArray()); }