Пример #1
0
        public async Task <BrokerResult> AddOrder(Order order)
        {
            if (order.Items?.Count == 0)
            {
                return(new BrokerResult(false, "This order has no items"));
            }

            if (order.CustomerId == null || order.CustomerId == System.Guid.Empty)
            {
                return(new BrokerResult(false, "This order has no customer"));
            }

            var json    = JsonSerializer.Serialize(order);
            var message = new KafkaProducerMessage(json, TOPIC_NAME);

            return(await Producer.SendMessage(message));
        }
Пример #2
0
        public void ArchiveKafkaProducerMessage(int MessageID)
        {
            KafkaProducerMessage        m = context.KafkaProducerMessage.Find(MessageID);
            KafkaProducerMessageArchive archivedMessage = KafkaProducerMessageToKafkaProducerMessageArchive(m);

            using (var dbContextTransaction = context.Database.BeginTransaction())
            {
                try
                {
                    context.KafkaProducerMessageArchive.Add(archivedMessage);
                    context.KafkaProducerMessage.Remove(m);
                    dbContextTransaction.Commit();
                    context.SaveChanges();
                }
                catch (Exception)
                {
                    dbContextTransaction.Rollback();
                    context.SaveChanges();
                }
            }
        }
Пример #3
0
 public static KafkaProducerMessageArchive KafkaProducerMessageToKafkaProducerMessageArchive(KafkaProducerMessage Message)
 {
     return(new KafkaProducerMessageArchive
     {
         KafkaProducerMessageID = Message.KafkaProducerMessageID,
         MessageContent = Message.MessageContent,
         Topic = Message.Topic,
         CreatedAt = Message.CreatedAt,
         ArchivedAt = DateTime.UtcNow
     });
 }
Пример #4
0
 public void InsertKafkaProducerMessage(KafkaProducerMessage Message)
 {
     context.KafkaProducerMessage.Add(Message);
     context.SaveChanges();
 }