示例#1
0
 public Form1()
 {
     InitializeComponent();
     Control.CheckForIllegalCrossThreadCalls = false;
     logCustomer = new Repository.CustomerRepo().Queryable().Count();
     logMailLog  = new Repository.MailLogRepo().Queryable().Count();
 }
示例#2
0
        public Consumer(string queueName)
        {
            _rabbitMqService = new RabbitMqService();
            var connection = _rabbitMqService.GetRabbitMqConnection();
            var channel    = connection.CreateModel();

            ConsumerEvent = new EventingBasicConsumer(channel);
            // Received event'i sürekli listen modunda olacaktır.
            ConsumerEvent.Received += (model, ea) =>
            {
                var body    = ea.Body;
                var message = Encoding.UTF8.GetString(body);
                //var data = $"{queueName} isimli queue üzerinden gelen mesaj: \"{message}\"";
                if (queueName == "MailLog")
                {
                    var data = JsonConvert.DeserializeObject <MailLog>(message);
                    //işlemler
                    new Repository.MailLogRepo().Insert(new MailLog()
                    {
                        Id         = data.Id,
                        CustomerId = data.CustomerId,
                        Message    = data.Message,
                        Subject    = data.Subject
                    });
                    Form1.logMailLog++;
                    Form.Text = $"Customer {Form1.logCustomer} - MailLog {Form1.logMailLog}";
                }
                else if (queueName == "Customer")
                {
                    var data = JsonConvert.DeserializeObject <List <Customer> >(message);
                    var repo = new Repository.CustomerRepo();
                    for (var i = 0; i < data.Count; i++)
                    {
                        var item = data[i];
                        Form1.logCustomer++;
                        Form.Text = $"Customer {Form1.logCustomer} - MailLog {Form1.logMailLog}";
                        repo.InsertForMark(new Customer()
                        {
                            Address      = item.Address,
                            Email        = item.Email,
                            Id           = item.Id,
                            Name         = item.Name,
                            Phone        = item.Phone,
                            Surname      = item.Surname,
                            RegisterDate = item.RegisterDate
                        });
                        if (i % 100 == 0)
                        {
                            repo.Save();
                        }
                    }
                    repo.Save();

                    //işlemler
                }
            };
            channel.BasicConsume(queueName, true, ConsumerEvent);
        }