Vasilek

Форк
0
/
AzureServiceBusConsumer.cs 
141 строка · 6.2 Кб
1
using Azure.Messaging.ServiceBus;
2
using Newtonsoft.Json;
3
using System.Text;
4
using Vasilek.MessageBus;
5
using Vasilek.Services.OrderAPI.Messages;
6
using Vasilek.Services.OrderAPI.Models;
7
using Vasilek.Services.OrderAPI.Repository;
8

9
namespace Vasilek.Services.OrderAPI.Messaging
10
{
11
    public class AzureServiceBusConsumer/* : IAzureServiceBusConsumer*/
12
    {
13
        //private readonly string serviceBusConnectionString;
14
        //private readonly string subscriptionCheckOut;
15
        //private readonly string checkoutMessageTopic;
16
        //private readonly string orderPaymentProcessTopic;
17
        //private readonly string orderUpdatePaymentResultTopic;
18

19
        //private readonly OrderRepository _orderRepository;
20

21
        //private ServiceBusProcessor checkOutProcessor;
22
        //private ServiceBusProcessor orderUpdatePaymentStatusProcessor;
23

24
        //private readonly IConfiguration _configuration;
25
        //private readonly IMessageBus _messageBus;
26

27
        //public AzureServiceBusConsumer(OrderRepository orderRepository, IConfiguration configuration, IMessageBus messageBus)
28
        //{
29
        //    this._orderRepository = orderRepository;
30
        //    this._configuration = configuration;
31
        //    this._messageBus = messageBus;
32

33
        //    serviceBusConnectionString = _configuration.GetValue<string>("ServiceBusConnectionString");
34
        //    subscriptionCheckOut = _configuration.GetValue<string>("SubscriptionCheckOut");
35
        //    checkoutMessageTopic = _configuration.GetValue<string>("CheckoutMessageTopic");
36
        //    orderPaymentProcessTopic = _configuration.GetValue<string>("OrderPaymentProcessTopics");
37
        //    orderUpdatePaymentResultTopic = _configuration.GetValue<string>("OrderUpdatePaymentResultTopic");
38

39
        //    var client = new ServiceBusClient(serviceBusConnectionString);
40
        //    checkOutProcessor = client.CreateProcessor(checkoutMessageTopic);
41
        //    orderUpdatePaymentStatusProcessor = client.CreateProcessor(orderUpdatePaymentResultTopic, subscriptionCheckOut);
42
        //}
43

44
        //public async Task Start()
45
        //{
46
        //    checkOutProcessor.ProcessMessageAsync += OnCheckOutMessageReceived;
47
        //    checkOutProcessor.ProcessErrorAsync += ErrorHandler;
48
        //    await checkOutProcessor.StartProcessingAsync();
49

50
        //    orderUpdatePaymentStatusProcessor.ProcessMessageAsync += OnOrderPaymentUpdateReceived;
51
        //    orderUpdatePaymentStatusProcessor.ProcessErrorAsync += ErrorHandler;
52
        //    await orderUpdatePaymentStatusProcessor.StartProcessingAsync();
53
        //}
54
        //public async Task Stop()
55
        //{
56
        //    await checkOutProcessor.StopProcessingAsync();
57
        //    await checkOutProcessor.DisposeAsync();
58

59
        //    await orderUpdatePaymentStatusProcessor.StopProcessingAsync();
60
        //    await orderUpdatePaymentStatusProcessor.DisposeAsync();
61
        //}
62
        //Task ErrorHandler(ProcessErrorEventArgs args)
63
        //{
64
        //    Console.WriteLine(args.Exception.ToString());
65
        //    return Task.CompletedTask;
66
        //}
67

68
        //private async Task OnCheckOutMessageReceived(ProcessMessageEventArgs args)
69
        //{
70
        //    var message = args.Message;
71
        //    var body = Encoding.UTF8.GetString(message.Body);
72

73
        //    CheckoutHeaderDto checkoutHeaderDto = JsonConvert.DeserializeObject<CheckoutHeaderDto>(body);
74

75
        //    OrderHeader orderHeader = new()
76
        //    {
77
        //        UserId = checkoutHeaderDto.UserId,
78
        //        FirstName = checkoutHeaderDto.FirstName,
79
        //        LastName = checkoutHeaderDto.LastName,
80
        //        OrderDetails = new List<OrderDetails>(),
81
        //        CardNumber = checkoutHeaderDto.CardNumber,
82
        //        CouponCode = checkoutHeaderDto.CouponCode,
83
        //        CVV = checkoutHeaderDto.CVV,
84
        //        DiscountTotal = checkoutHeaderDto.DiscountTotal,
85
        //        Email = checkoutHeaderDto.Email,
86
        //        ExpiryMonthYear = checkoutHeaderDto.ExpiryMonthYear,
87
        //        OrderTime = DateTime.Now,
88
        //        OrderTotal = checkoutHeaderDto.OrderTotal,
89
        //        PaymentStatus = false,
90
        //        Phone = checkoutHeaderDto.Phone,
91
        //        PickupDateTime = checkoutHeaderDto.PickupDateTime
92
        //    };
93
        //    foreach (var detailList in checkoutHeaderDto.CartDetails)
94
        //    {
95
        //        OrderDetails orderDetails = new()
96
        //        {
97
        //            ProductId = detailList.ProductId,
98
        //            ProductName = detailList.Product.Name,
99
        //            Price = detailList.Product.Price,
100
        //            Count = detailList.Count
101
        //        };
102
        //        orderHeader.CartTotalItems += detailList.Count;
103
        //        orderHeader.OrderDetails.Add(orderDetails);
104
        //    }
105

106
        //    await _orderRepository.AddOrder(orderHeader);
107

108
        //    PaymentRequestMessage paymentRequestMessage = new()
109
        //    {
110
        //        Name = orderHeader.FirstName + " " + orderHeader.LastName,
111
        //        CardNumber = orderHeader.CardNumber,
112
        //        CVV = orderHeader.CVV,
113
        //        ExpiryMonthYear = orderHeader.ExpiryMonthYear,
114
        //        OrderId = orderHeader.OrderHeaderId,
115
        //        OrderTotal = orderHeader.OrderTotal,
116
        //        Email = orderHeader.Email
117
        //    };
118

119
        //    try
120
        //    {
121
        //        await _messageBus.PublishMessage(paymentRequestMessage, orderPaymentProcessTopic);
122
        //        await args.CompleteMessageAsync(args.Message);
123
        //    }
124
        //    catch (Exception e)
125
        //    {
126
        //        throw;
127
        //    }
128
        //}
129

130
        //private async Task OnOrderPaymentUpdateReceived(ProcessMessageEventArgs args)
131
        //{
132
        //    var message = args.Message;
133
        //    var body = Encoding.UTF8.GetString(message.Body);
134

135
        //    UpdatePaymentResultMessage paymentResultMessage = JsonConvert.DeserializeObject<UpdatePaymentResultMessage>(body);
136

137
        //    await _orderRepository.UpdateOrderPaymentStatus(paymentResultMessage.OrderId, paymentResultMessage.Status);
138
        //    await args.CompleteMessageAsync(args.Message);
139
        //}
140
    }
141
}
142

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.