Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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());
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 11
0
        /// <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());
        }