private static async Task Handle(Message message, CancellationToken arg2) { Console.WriteLine($"message Label: {message.Label}"); Console.WriteLine($"message CorrelationId: {message.CorrelationId}"); var newOrderString = Encoding.UTF8.GetString(message.Body); var order = JsonConvert.DeserializeObject <NewOrderMessage>(newOrderString); var _orderToUpsert = new OrderToUpsert(); _orderToUpsert.OrderId = order.OrderId; _orderToUpsert.Products = order.Products; _orderToUpsert.Productions = order.ProductionIds; Console.WriteLine("Message Received"); Console.WriteLine(newOrderString); //Thread.Sleep(40000); var client = new HttpClient(); var byteData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(_orderToUpsert)); var content = new ByteArrayContent(byteData); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var _policyRegistry = new PolicyRegistry(); var apiUrl = "/api/order"; var _baseUri = "http://localhost:5009/"; var retryPolicy = _policyRegistry.Get <IAsyncPolicy <HttpResponseMessage> >("basic-retry") ?? Policy.NoOpAsync <HttpResponseMessage>(); var context = new Context($"GetSomeData-{Guid.NewGuid()}", new Dictionary <string, object> { { "url", apiUrl } }); var retries = 0; // ReSharper disable once AccessToDisposedClosure var response = await retryPolicy.ExecuteAsync((ctx) => { client.DefaultRequestHeaders.Remove("retries"); client.DefaultRequestHeaders.Add("retries", new[] { retries++.ToString() }); var baseUrl = _baseUri; var isValid = Uri.IsWellFormedUriString(apiUrl, UriKind.Absolute); return(client.PostAsync(isValid ? $"{baseUrl}{apiUrl}" : $"{baseUrl}/api/Order", content)); }, context); content.Dispose(); return; }
public IActionResult PostOrder([FromBody] OrderToUpsert order) { ShowDisplayMessage showDisplayMessage = new ShowDisplayMessage(); showDisplayMessage.Properties = new Dictionary <String, Object>(); showDisplayMessage.Properties.Add("ServicoEnvio", "GeekBurger.UI"); showDisplayMessage.Label = "NewOrder"; showDisplayMessage.Body = order; _showDisplayService.AddMessage(showDisplayMessage); _showDisplayService.SendMessagesAsync(Topics.neworder); return(CreatedAtRoute("GetFace", new { OrderId = orderToGet.OrderId }, orderToGet)); }
public IActionResult AddOrder([FromBody] OrderToUpsert orderToAdd) { if (orderToAdd == null) { return(BadRequest()); } var order = _mapper.Map <Order>(orderToAdd); _ordersRepository.Add(order); _ordersRepository.Save(); var orderToGet = _mapper.Map <OrderToGet>(order); return(CreatedAtRoute("GetOrder", new { id = orderToGet.OrderId }, orderToGet)); }
public IActionResult CreateOrder([FromBody] OrderToUpsert orderToAdd) { if (orderToAdd == null) { return(BadRequest()); } var order = _mapper.Map <Order>(orderToAdd); if (order.StoreId == Guid.Empty) { return(new UnprocessableEntityResult(ModelState)); } _ordersRepository.Add(order); _ordersRepository.Save(); var orderToGet = _mapper.Map <OrderToGet>(order); return(CreatedAtRoute(new { OrderId = orderToGet.OrderId }, orderToGet)); }