Ejemplo n.º 1
0
        public Task <TripPerson?> GetAsync(string?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 TripPersonDataSvc.GetAsync(id).ConfigureAwait(false);
                if (_getOnAfterAsync != null)
                {
                    await _getOnAfterAsync(__result, id).ConfigureAwait(false);
                }
                Cleaner.Clean(__result);
                return __result;
            }));
        }
Ejemplo n.º 2
0
        public Task <TripPerson> CreateAsync(TripPerson value)
        {
            value.Validate(nameof(value)).Mandatory().Run().ThrowOnError();

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

                MultiValidator.Create()
                .Add(value.Validate(nameof(value)))
                .Additional((__mv) => _createOnValidate?.Invoke(__mv, value))
                .Run().ThrowOnError();

                if (_createOnBeforeAsync != null)
                {
                    await _createOnBeforeAsync(value).ConfigureAwait(false);
                }
                var __result = await TripPersonDataSvc.CreateAsync(value).ConfigureAwait(false);
                if (_createOnAfterAsync != null)
                {
                    await _createOnAfterAsync(__result).ConfigureAwait(false);
                }
                Cleaner.Clean(__result);
                return __result;
            }));
        }
Ejemplo n.º 3
0
        public Task DeleteAsync(string?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 TripPersonDataSvc.DeleteAsync(id).ConfigureAwait(false);
                if (_deleteOnAfterAsync != null)
                {
                    await _deleteOnAfterAsync(id).ConfigureAwait(false);
                }
            }));
        }