コード例 #1
0
        public Task <Contact?> 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 ContactDataSvc.GetAsync(id).ConfigureAwait(false);
                if (_getOnAfterAsync != null)
                {
                    await _getOnAfterAsync(__result, id).ConfigureAwait(false);
                }
                Cleaner.Clean(__result);
                return __result;
            }));
        }
コード例 #2
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 ContactDataSvc.DeleteAsync(id).ConfigureAwait(false);
                if (_deleteOnAfterAsync != null)
                {
                    await _deleteOnAfterAsync(id).ConfigureAwait(false);
                }
            }));
        }
コード例 #3
0
        public Task <Contact> UpdateAsync(Contact 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)))
                .Additional((__mv) => _updateOnValidate?.Invoke(__mv, value, id))
                .Run().ThrowOnError();

                if (_updateOnBeforeAsync != null)
                {
                    await _updateOnBeforeAsync(value, id).ConfigureAwait(false);
                }
                var __result = await ContactDataSvc.UpdateAsync(value).ConfigureAwait(false);
                if (_updateOnAfterAsync != null)
                {
                    await _updateOnAfterAsync(__result, id).ConfigureAwait(false);
                }
                Cleaner.Clean(__result);
                return __result;
            }));
        }
コード例 #4
0
 public Task <ContactCollectionResult> GetAllAsync()
 {
     return(ManagerInvoker.Default.InvokeAsync(this, async() =>
     {
         ExecutionContext.Current.OperationType = OperationType.Read;
         if (_getAllOnBeforeAsync != null)
         {
             await _getAllOnBeforeAsync().ConfigureAwait(false);
         }
         var __result = await ContactDataSvc.GetAllAsync().ConfigureAwait(false);
         if (_getAllOnAfterAsync != null)
         {
             await _getAllOnAfterAsync(__result).ConfigureAwait(false);
         }
         Cleaner.Clean(__result);
         return __result;
     }));
 }