Exemple #1
0
        public async Task <IApiResponseContextDto <TResponseDto> > Post <TRequestDto, TResponseDto>(TRequestDto dto)
            where TRequestDto : IApiRequestDto
        {
            _referenceConverter = new ReferenceConverter(typeof(IApiResponseContextDto <TResponseDto>));

            if (_configuration["ApiBaseUrl"] == null)
            {
                throw new Exception("FATAL: ApiBaseUrl CAN NOT BE NULL");
            }

            var httpClient = new HttpClient();

            httpClient.BaseAddress = new Uri(_configuration["ApiBaseUrl"]);

            var request = new ApiControllerRequestDto()
            {
                Request             = dto,
                ResponseType        = typeof(TResponseDto).FullName,
                AuthenticationToken = _applicationContextHandler.FetchContext()?.Token?.Value
            };

            var jsonToSend = JsonConvert.SerializeObject(request, Json.Serialization.Auto());

            var content  = new StringContent(jsonToSend, Encoding.UTF8, "application/json");
            var uri      = _configuration["ApiBaseUrl"] + "EndPoint/Request";
            var response = await httpClient.PostAsync(uri, content);

            var result = JsonConvert.DeserializeObject <ApiResponseContextDto <TResponseDto> >
                             (response.Content.ReadAsStringAsync().Result);

            return(result);
        }
Exemple #2
0
        public async Task <object> Execute(ApiControllerRequestDto dto)
        {
            var method = _executionPipeline
                         .GetType()
                         .GetMethod("Execute")
                         .MakeGenericMethod(dto.Request.GetType(),
                                            StaticHelpers.GetBusinessDtoType(dto.ResponseType));

            return(await Task.Run(
                       () => method.Invoke(_executionPipeline,
                                           new[] { (object)dto.Request, dto.AuthenticationToken })
                       ));
        }
Exemple #3
0
        public void RaiseAggregate <TAggRequest, TAggResponse>(TAggRequest dto, params string[] queues)
            where TAggRequest : IApiRequestDto
        {
            var request = new ApiControllerRequestDto()
            {
                Request = dto, ResponseType = typeof(TAggResponse).FullName, Destination = queues.ToList()
            };

            var eventRequestDto = ApplicationContext.Container.Resolve <IEventRequestDto <ApiControllerRequestDto> >();

            eventRequestDto.Queues   = queues.ToList();
            eventRequestDto.MetaData = request;
            Events.Add(eventRequestDto);

            Aggregates.Add(eventRequestDto);
        }
Exemple #4
0
        public static IApiResponseContextDto <TResponseDto> EndPoint <TRequestDto, TResponseDto>(
            ConnectorClient connectorClient, TRequestDto dto)
            where TRequestDto : IApiRequestDto
        {
            var request = new ApiControllerRequestDto()
            {
                Request      = dto,
                ResponseType = typeof(TResponseDto).FullName
            };

            var jsonToSend = JsonConvert.SerializeObject(request, Json.Serialization.Auto());

            var content  = new StringContent(jsonToSend, Encoding.UTF8, "application/json");
            var uri      = connectorClient.BaseUrl + "EndPoint/Request";
            var response = connectorClient.HttpClient.PostAsync(uri, content);

            response.Wait();

            var result = JsonConvert.DeserializeObject <ApiResponseContextDto <TResponseDto> >
                             (response.Result.Content.ReadAsStringAsync().Result, Json.Serialization.Auto());

            return(result);
        }
Exemple #5
0
        public IApiResponseContextDto <TResponseDto> Post <TRequestDto, TResponseDto>(TRequestDto dto, CancellationToken?cancellationToken = null)
            where TRequestDto : IApiRequestDto
        {
            if (_configuration["ApiBaseUrl"] == null)
            {
                throw new Exception("FATAL: ApiBaseUrl CAN NOT BE NULL");
            }

            var hostUrl = _configuration["ApiBaseUrl"];

            var request = new ApiControllerRequestDto()
            {
                Request      = JsonConvert.SerializeObject(dto, Json.Serialization.Auto()),
                RequestType  = typeof(TRequestDto).Name,
                ResponseType = typeof(TResponseDto).Name,
            };

            var jsonToSend = JsonConvert.SerializeObject(request, Json.Serialization.Auto());

            var httpClient = new HttpClient
            {
                BaseAddress = new Uri(hostUrl)
            };

            if (_applicationUserContext.Token?.Value != null)
            {
                httpClient.DefaultRequestHeaders.Add("Authorization", _applicationUserContext.Token?.Value);
            }

            var content  = new StringContent(jsonToSend, Encoding.UTF8, "application/json");
            var uri      = hostUrl + "Generic/Post";
            var response = httpClient.PostAsync(uri, content, cancellationToken ?? new CancellationTokenSource(Convert.ToInt32(_configuration["RestApi.AsyncTimeOut"])).Token).Result;
            var result   = JsonConvert.DeserializeObject <ApiResponseContextDto <TResponseDto> >(response.Content.ReadAsStringAsync().Result);

            return(result);
        }
Exemple #6
0
 public async Task <object> Post([FromBody] ApiControllerRequestDto dto) => await _apiControllerRequestManager.Execute(dto);
Exemple #7
0
        public async Task <IApiResponseContextDto <TResponseDto> > PostAsync <TRequestDto, TResponseDto>(TRequestDto dto, string serviceDestination = "", CancellationToken?cancellationToken = null)
        //where TRequestDto : IApiRequestDto
        {
            var hostUrl = string.Empty;

            if (!string.IsNullOrEmpty(serviceDestination))
            {
                hostUrl = _configuration[$"ServiceRoutes:{serviceDestination}"];
                if (string.IsNullOrEmpty(hostUrl))
                {
                    throw new Exception($"FATAL: serviceDestination url not set {serviceDestination}");
                }
            }
            else
            {
                if (_configuration["ApiBaseUrl"] == null)
                {
                    throw new Exception("FATAL: ApiBaseUrl CAN NOT BE NULL");
                }
                hostUrl = _configuration["ApiBaseUrl"];
            }



            var request = new ApiControllerRequestDto()
            {
                Request      = JsonConvert.SerializeObject(dto, Json.Serialization.Auto()),
                RequestType  = typeof(TRequestDto).Name,
                ResponseType = typeof(TResponseDto).Name,
            };

            var jsonToSend = JsonConvert.SerializeObject(request, Json.Serialization.Auto());

            var httpClient = new HttpClient
            {
                BaseAddress = new Uri(hostUrl)
            };

            if (_applicationUserContext.Token?.Value != null)
            {
                httpClient.DefaultRequestHeaders.Add("Authorization", _applicationUserContext.Token?.Value);
            }

            var content = new StringContent(jsonToSend, Encoding.UTF8, "application/json");
            var uri     = hostUrl + $"{_configuration["ApiBaseUri"]}Generic/Post";

            var response = await httpClient.PostAsync(uri, content, cancellationToken ?? new CancellationTokenSource().Token);

            if (response.StatusCode == HttpStatusCode.Unauthorized)
            {
                return(new ApiResponseContextDto <TResponseDto>()
                {
                    Messages = new List <MessageDto>()
                    {
                        new MessageDto("E3", "please logout and re-login", MessageDtoType.Error)
                    }
                });
            }

            var result = JsonConvert.DeserializeObject <ApiResponseContextDto <TResponseDto> >(response.Content.ReadAsStringAsync().Result);

            return(result);
        }
Exemple #8
0
 public async Task <object> Request([FromBody] ApiControllerRequestDto dto)
 {
     return(await _apiControllerRequestManager.Execute(dto));
 }