public bool SendToQueueOutput(OutputQueueMessage outputQueueMessage) { string json = JsonConvert.SerializeObject(outputQueueMessage, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); return(_rabbitMQService.SendMessage(json, _rabbitMqSettings.OutputQueueName)); }
private async Task Consumer_Received(object sender, BasicDeliverEventArgs ea) { var body = ea.Body; var message = Encoding.UTF8.GetString(body); var outputQueueMessage = new OutputQueueMessage(); try { CreateEventDto dto = JsonConvert.DeserializeObject <CreateEventDto>(message); outputQueueMessage.Md5 = dto.Md5; using (var scope = _serviceProvider.CreateScope()) { var eventService = scope.ServiceProvider.GetRequiredService <IEventService>(); await eventService.CreateAsync(dto); } outputQueueMessage.EventStatus = EventStatusConstants.SUCCESSFULLY_RECEIVED; } catch (Exception ex) { Console.WriteLine(ex.Message); outputQueueMessage.EventStatus = EventStatusConstants.UNSUCCESSFULLY_RECEIVED; } try { var sended = true; using (var scope = _serviceProvider.CreateScope()) { var queueSenderService = scope.ServiceProvider.GetRequiredService <IQueueSenderService>(); sended = queueSenderService.SendToQueueOutput(outputQueueMessage); } if (outputQueueMessage.EventStatus == EventStatusConstants.SUCCESSFULLY_RECEIVED) { using (var scope = _serviceProvider.CreateScope()) { var eventService = scope.ServiceProvider.GetRequiredService <IEventService>(); await eventService.UpdateSendedToOutputAsync(outputQueueMessage.Md5, sended); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } }