Exemple #1
0
        private async Task <HerculesResult <TPayload> > SendAsync <TDto, TPayload>(Request request, TimeSpan timeout, IResponseAnalyzer analyzer, Func <TDto, TPayload> converter)
        {
            try
            {
                var result = await client.SendAsync(WithManagementApiTimeout(request, timeout), timeout).ConfigureAwait(false);

                var payload = default(TPayload);

                var status = analyzer.Analyze(result.Response, out var errorMessage);
                if (status == HerculesStatus.Success)
                {
                    payload = converter(Serializer.Deserialize <TDto>(result.Response.Content.ToMemoryStream()));
                }

                return(new HerculesResult <TPayload>(status, payload, errorMessage));
            }
            catch (Exception error)
            {
                log.Error(error);
                return(new HerculesResult <TPayload>(HerculesStatus.UnknownError, default, error.Message));
Exemple #2
0
        private async Task <HerculesResult> SendAsync(Request request, object requestDto, TimeSpan timeout, IResponseAnalyzer analyzer)
        {
            try
            {
                if (requestDto != null)
                {
                    request = request.WithContentTypeHeader(Constants.ContentTypes.Json);
                    request = request.WithContent(Serializer.Serialize(requestDto));
                }

                var result = await client.SendAsync(WithManagementApiTimeout(request, timeout), timeout).ConfigureAwait(false);

                var status = analyzer.Analyze(result.Response, out var errorMessage);

                return(new HerculesResult(status, errorMessage));
            }
            catch (Exception error)
            {
                log.Error(error);
                return(new HerculesResult(HerculesStatus.UnknownError, error.Message));
            }
        }