Пример #1
0
        public Task <PersonDetailCollectionResult> GetDetailByArgsAsync(PersonArgs?args, PagingArgs?paging)
        {
            return(ManagerInvoker.Default.InvokeAsync(this, async() =>
            {
                ExecutionContext.Current.OperationType = OperationType.Read;
                EntityBase.CleanUp(args);
                if (_getDetailByArgsOnPreValidateAsync != null)
                {
                    await _getDetailByArgsOnPreValidateAsync(args, paging).ConfigureAwait(false);
                }

                MultiValidator.Create()
                .Add(args.Validate(nameof(args)).Entity(PersonArgsValidator.Default))
                .Additional((__mv) => _getDetailByArgsOnValidate?.Invoke(__mv, args, paging))
                .Run().ThrowOnError();

                if (_getDetailByArgsOnBeforeAsync != null)
                {
                    await _getDetailByArgsOnBeforeAsync(args, paging).ConfigureAwait(false);
                }
                var __result = await PersonDataSvc.GetDetailByArgsAsync(args, paging).ConfigureAwait(false);
                if (_getDetailByArgsOnAfterAsync != null)
                {
                    await _getDetailByArgsOnAfterAsync(__result, args, paging).ConfigureAwait(false);
                }
                Cleaner.Clean(__result);
                return __result;
            }));
        }
Пример #2
0
        public Task <Person> MergeAsync(Guid fromId, Guid toId)
        {
            return(ManagerInvoker.Default.InvokeAsync(this, async() =>
            {
                ExecutionContext.Current.OperationType = OperationType.Update;
                EntityBase.CleanUp(fromId, toId);
                if (_mergeOnPreValidateAsync != null)
                {
                    await _mergeOnPreValidateAsync(fromId, toId).ConfigureAwait(false);
                }

                MultiValidator.Create()
                .Add(fromId.Validate(nameof(fromId)).Mandatory())
                .Add(toId.Validate(nameof(toId)).Mandatory().CompareValue(CompareOperator.NotEqual, fromId, nameof(fromId).ToSentenceCase() !))
                .Additional((__mv) => _mergeOnValidate?.Invoke(__mv, fromId, toId))
                .Run().ThrowOnError();

                if (_mergeOnBeforeAsync != null)
                {
                    await _mergeOnBeforeAsync(fromId, toId).ConfigureAwait(false);
                }
                var __result = await PersonDataSvc.MergeAsync(fromId, toId).ConfigureAwait(false);
                if (_mergeOnAfterAsync != null)
                {
                    await _mergeOnAfterAsync(__result, fromId, toId).ConfigureAwait(false);
                }
                Cleaner.Clean(__result);
                return __result;
            }));
Пример #3
0
        public Task <Person> UpdateAsync(Person value, Guid id)
        {
            value.Validate(nameof(value)).Mandatory().Run().ThrowOnError();

            return(ManagerInvoker.Default.InvokeAsync(this, async() =>
            {
                ExecutionContext.Current.OperationType = OperationType.Update;
                value.Id = id;
                EntityBase.CleanUp(value, id);
                if (_updateOnPreValidateAsync != null)
                {
                    await _updateOnPreValidateAsync(value, id).ConfigureAwait(false);
                }

                MultiValidator.Create()
                .Add(value.Validate(nameof(value)).Entity(PersonValidator.Default))
                .Additional((__mv) => _updateOnValidate?.Invoke(__mv, value, id))
                .Run().ThrowOnError();

                if (_updateOnBeforeAsync != null)
                {
                    await _updateOnBeforeAsync(value, id).ConfigureAwait(false);
                }
                var __result = await PersonDataSvc.UpdateAsync(value).ConfigureAwait(false);
                if (_updateOnAfterAsync != null)
                {
                    await _updateOnAfterAsync(__result, id).ConfigureAwait(false);
                }
                Cleaner.Clean(__result);
                return __result;
            }));
        }
Пример #4
0
        public Task <Person?> GetAsync(Guid id)
        {
            return(ManagerInvoker.Default.InvokeAsync(this, async() =>
            {
                ExecutionContext.Current.OperationType = OperationType.Read;
                EntityBase.CleanUp(id);
                if (_getOnPreValidateAsync != null)
                {
                    await _getOnPreValidateAsync(id).ConfigureAwait(false);
                }

                MultiValidator.Create()
                .Add(id.Validate(nameof(id)).Mandatory())
                .Additional((__mv) => _getOnValidate?.Invoke(__mv, id))
                .Run().ThrowOnError();

                if (_getOnBeforeAsync != null)
                {
                    await _getOnBeforeAsync(id).ConfigureAwait(false);
                }
                var __result = await PersonDataSvc.GetAsync(id).ConfigureAwait(false);
                if (_getOnAfterAsync != null)
                {
                    await _getOnAfterAsync(__result, id).ConfigureAwait(false);
                }
                Cleaner.Clean(__result);
                return __result;
            }));
        }
Пример #5
0
        public Task DeleteAsync(Guid id)
        {
            return(ManagerInvoker.Default.InvokeAsync(this, async() =>
            {
                ExecutionContext.Current.OperationType = OperationType.Delete;
                EntityBase.CleanUp(id);
                if (_deleteOnPreValidateAsync != null)
                {
                    await _deleteOnPreValidateAsync(id).ConfigureAwait(false);
                }

                MultiValidator.Create()
                .Add(id.Validate(nameof(id)).Mandatory())
                .Additional((__mv) => _deleteOnValidate?.Invoke(__mv, id))
                .Run().ThrowOnError();

                if (_deleteOnBeforeAsync != null)
                {
                    await _deleteOnBeforeAsync(id).ConfigureAwait(false);
                }
                await PersonDataSvc.DeleteAsync(id).ConfigureAwait(false);
                if (_deleteOnAfterAsync != null)
                {
                    await _deleteOnAfterAsync(id).ConfigureAwait(false);
                }
            }));
        }
Пример #6
0
        /// <summary>
        /// Creates the <see cref="Person"/> object.
        /// </summary>
        /// <param name="value">The <see cref="Person"/> object.</param>
        /// <returns>A refreshed <see cref="Person"/> object.</returns>
        public Task <Person> CreateWithEfAsync(Person value)
        {
            return(ManagerInvoker.Default.InvokeAsync(this, async() =>
            {
                ExecutionContext.Current.OperationType = OperationType.Create;
                EntityBase.CleanUp(value);
                if (_createWithEfOnPreValidateAsync != null)
                {
                    await _createWithEfOnPreValidateAsync(value);
                }

                MultiValidator.Create()
                .Add(value.Validate(nameof(value)).Mandatory().Entity(PersonValidator.Default))
                .Additional((__mv) => _createWithEfOnValidate?.Invoke(__mv, value))
                .Run().ThrowOnError();

                if (_createWithEfOnBeforeAsync != null)
                {
                    await _createWithEfOnBeforeAsync(value);
                }
                var __result = await PersonDataSvc.CreateWithEfAsync(value);
                if (_createWithEfOnAfterAsync != null)
                {
                    await _createWithEfOnAfterAsync(__result);
                }
                Cleaner.Clean(__result);
                return __result;
            }));
        }
Пример #7
0
 /// <summary>
 /// Mark <see cref="Person"/>.
 /// </summary>
 public Task MarkAsync()
 {
     return(ManagerInvoker.Default.InvokeAsync(this, async() =>
     {
         ExecutionContext.Current.OperationType = OperationType.Update;
         if (_markOnBeforeAsync != null)
         {
             await _markOnBeforeAsync().ConfigureAwait(false);
         }
         await PersonDataSvc.MarkAsync().ConfigureAwait(false);
         if (_markOnAfterAsync != null)
         {
             await _markOnAfterAsync().ConfigureAwait(false);
         }
     }));
 }
Пример #8
0
 public Task <PersonCollectionResult> GetAll2Async()
 {
     return(ManagerInvoker.Default.InvokeAsync(this, async() =>
     {
         ExecutionContext.Current.OperationType = OperationType.Read;
         if (_getAll2OnBeforeAsync != null)
         {
             await _getAll2OnBeforeAsync().ConfigureAwait(false);
         }
         var __result = await PersonDataSvc.GetAll2Async().ConfigureAwait(false);
         if (_getAll2OnAfterAsync != null)
         {
             await _getAll2OnAfterAsync(__result).ConfigureAwait(false);
         }
         Cleaner.Clean(__result);
         return __result;
     }));
 }
Пример #9
0
 /// <summary>
 /// Validate a DataSvc Custom generation.
 /// </summary>
 /// <returns>A resultant <see cref="int"/>.</returns>
 public Task <int> DataSvcCustomAsync()
 {
     return(ManagerInvoker.Default.InvokeAsync(this, async() =>
     {
         ExecutionContext.Current.OperationType = OperationType.Unspecified;
         if (_dataSvcCustomOnBeforeAsync != null)
         {
             await _dataSvcCustomOnBeforeAsync().ConfigureAwait(false);
         }
         var __result = await PersonDataSvc.DataSvcCustomAsync().ConfigureAwait(false);
         if (_dataSvcCustomOnAfterAsync != null)
         {
             await _dataSvcCustomOnAfterAsync(__result).ConfigureAwait(false);
         }
         Cleaner.Clean(__result);
         return __result;
     }));
 }