public override async Task <Unit> Handle(DeleteCommand <TModelEntity, TApiEntityKey> request, CancellationToken cancellationToken)
        {
            await CrudApiManager.ExecuteAsync((ct, api) => api.Delete(request.Key, ct), cancellationToken)
            .ConfigureAwait(false);

            return(Unit.Value);
        }
Beispiel #2
0
        public override async Task <TModelEntity> Handle(ReadQuery <TModelEntity, TApiEntityKey> request, CancellationToken cancellationToken)
        {
            var result = await CrudApiManager
                         .ExecuteAsync((ct, api) => api.Read(request.Key, request.Priority, ct), cancellationToken)
                         .ConfigureAwait(false);

            return(Map <TApiEntity, TModelEntity>(result));
        }
Beispiel #3
0
        public override async Task <TModelEntity> Handle(CreateCommand <TModelEntity> request, CancellationToken cancellationToken)
        {
            var result = await CrudApiManager
                         .ExecuteAsync((ct, api) => api.Create(Map <TModelEntity, TApiEntity>(request.Payload), ct), cancellationToken)
                         .ConfigureAwait(false);

            return(Map <TApiEntity, TModelEntity>(result));
        }
        public override async Task <TModelEntityReadAllResult> Handle(ReadAllQuery <TReadAllParams, TModelEntityReadAllResult> request, CancellationToken cancellationToken)
        {
            var result = await CrudApiManager
                         .ExecuteAsync((ct, api) => api.ReadAll(request.Parameters, request.Priority, ct), cancellationToken)
                         .ConfigureAwait(false);

            return(Map <TApiEntityReadAllResult, TModelEntityReadAllResult>(result));
        }
 public override async Task <Option <TModelEntity, ApizrException <TModelEntity> > > Handle(ReadOptionalQuery <TModelEntity, TApiEntityKey> request, CancellationToken cancellationToken)
 {
     try
     {
         return(await request.SomeNotNull(new ApizrException <TModelEntity>(
                                              new NullReferenceException($"Request {request.GetType().GetFriendlyName()} can not be null")))
                .MapAsync(_ => CrudApiManager.ExecuteAsync((ct, api) => api.Read(request.Key, request.Priority, ct),
                                                           cancellationToken))
                .MapAsync(result => Task.FromResult(Map <TApiEntity, TModelEntity>(result)))
                .ConfigureAwait(false));
     }
     catch (ApizrException <TApiEntity> e)
     {
         return(Option.None <TModelEntity, ApizrException <TModelEntity> >(
                    new ApizrException <TModelEntity>(e.InnerException, Map <TApiEntity, TModelEntity>(e.CachedResult))));
     }
 }
Beispiel #6
0
 public override async Task <Option <TModelEntity, ApizrException> > Handle(CreateOptionalCommand <TModelEntity> request, CancellationToken cancellationToken)
 {
     try
     {
         return(await request
                .SomeNotNull(new ApizrException(
                                 new NullReferenceException($"Request {request.GetType().GetFriendlyName()} can not be null")))
                .MapAsync(_ =>
                          CrudApiManager
                          .ExecuteAsync((ct, api) => api.Create(Map <TModelEntity, TApiEntity>(request.Payload), ct),
                                        cancellationToken))
                .MapAsync(apiResult => Task.FromResult(Map <TApiEntity, TModelEntity>(apiResult)))
                .ConfigureAwait(false));
     }
     catch (ApizrException e)
     {
         return(Option.None <TModelEntity, ApizrException>(e));
     }
 }
        public override async Task <Option <Unit, ApizrException> > Handle(DeleteOptionalCommand <TModelEntity, TApiEntityKey> request, CancellationToken cancellationToken)
        {
            try
            {
                return(await request
                       .SomeNotNull(new ApizrException(
                                        new NullReferenceException($"Request {request.GetType().GetFriendlyName()} can not be null")))
                       .MapAsync(async _ =>
                {
                    await CrudApiManager
                    .ExecuteAsync((ct, api) => api.Delete(request.Key, ct), cancellationToken);

                    return Unit.Value;
                })
                       .ConfigureAwait(false));
            }
            catch (ApizrException e)
            {
                return(Option.None <Unit, ApizrException>(e));
            }
        }