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); }
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 }) )); }
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); }
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); }
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); }
public async Task <object> Post([FromBody] ApiControllerRequestDto dto) => await _apiControllerRequestManager.Execute(dto);
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); }
public async Task <object> Request([FromBody] ApiControllerRequestDto dto) { return(await _apiControllerRequestManager.Execute(dto)); }