Esempio n. 1
0
        public async Task <ReportEvent> GetReport()
        {
            var allContact = await contactContext.ContactInfo.Find(x => true).ToListAsync();

            var filteredData = allContact.Where(b => b.IletisimTipi == Entities.Enums.IletisimTipi.Konum).Select(c => new ReportData {
                Konum = c.Aciklama, KonumdakiToplamTelefonNo = allContact.Where(x => x.IletisimTipi == Entities.Enums.IletisimTipi.TelefonNumarasi && x.PersonId == c.PersonId).Count()
            });
            var res = filteredData.GroupBy(x => x.Konum).Select(y => new ReportData {
                Konum = y.Key, KonumdakiToplamKayit = y.Count(), KonumdakiToplamTelefonNo = y.Sum(v => v.KonumdakiToplamTelefonNo)
            }).ToList();
            var model = new ReportEvent()
            {
                Durum        = RaporDurumConvert.RaporDurumEnum(2),
                ReportId     = Guid.NewGuid(),
                RaporIcerigi = res
            };

            try
            {
                reportProducer.PubishReport(EventConstants.ReportQueue, model);
            }
            catch (Exception)
            {
                throw;
            }
            return(model);
        }
Esempio n. 2
0
        public void PubishReport(string queName, ReportEvent model)
        {
            model.Durum = RaporDurumConvert.RaporDurumEnum(1);
            Thread.Sleep(2000);
            using (var channel = connection.CreateModel())
            {
                channel.QueueDeclare(queue: queName, durable: false, exclusive: false, autoDelete: false, arguments: null);
                model.Durum = RaporDurumConvert.RaporDurumEnum(2);
                var message = JsonConvert.SerializeObject(model);
                var body    = Encoding.UTF8.GetBytes(message);

                IBasicProperties bprops = channel.CreateBasicProperties();
                bprops.Persistent   = true;
                bprops.DeliveryMode = 2;

                channel.ConfirmSelect();
                channel.BasicPublish(exchange: "", routingKey: queName, mandatory: true, basicProperties: bprops, body: body);
                channel.WaitForConfirmsOrDie();

                channel.BasicAcks += (sender, eventArgs) =>
                {
                    Console.WriteLine("RabbitMQ");
                };
                channel.ConfirmSelect();
            }
        }