예제 #1
0
        private void btnCreateDocument_Click(object sender, EventArgs e)
        {
            var model = new CreateDocumentModel()
            {
                UserId       = 1,
                DocumentType = DocumentType.Pdf
            };

            // modelimi oluşturdum. Modelimi göndercem. Bunun için benim queue isimlerine ihtiyacım var.

            // create documentin altında writeQueue'yu çağırcaz
            WriteQueue(createDocument, model); // hangi queue ya göndercez? create dediğimiz için, create queue ya göndercez.

            frmSplash frmSplash = new frmSplash();

            frmSplash.Show();

            // bunu çıkarttıktan sonra, benim artık consumer işlemlerini toparlamam gerek.

            var consumerEvent = new EventingBasicConsumer(channel); // böyle bir eventim var. benden channel istiyor. bu eventin recieve isminde bir metodu var. bunun ilk parametesi channel ikincisi event argüment şeklinde.

            consumerEvent.Received += (ch, ea) =>
            {
                // mesaj gelince önce modeli alalım
                var modelReceived = JsonConvert.DeserializeObject <CreateDocumentModel>(Encoding.UTF8.GetString(ea.Body.ToArray()));
                // recive data ya bu url i bastık
                AddLog($"Received Data Url: {modelReceived.Url}");

                closeSplashScreen(frmSplash);
            };

            // sonra channel a diyecez ki ben artık consume etmek isityorum. yani;

            channel.BasicConsume(documentCreated, true, consumerEvent); // o bana neyi consume edecen diyor. ben de ona document created ı consume edecem. cünkü consumer öteki taraftan yazacak bana. bana diyecek ki ben dökümanı oluşturdum. onu consume edecez diyorum. auotAck'ti true ve cunsoumer olarak da consumer eventimi parametre olarak gönderiyorum.
        }
예제 #2
0
 // splash'i kapamak için;
 private void closeSplashScreen(frmSplash frmSplash)
 {
     if (frmSplash.InvokeRequired)
     {// ınvoke= metot çalışıyorsa
         frmSplash.Invoke(new Action(() => closeSplashScreen(frmSplash)));
         return;
     }
     frmSplash.Close();
 }