public void TestSimpleMessage()
        {
            // Create sender and receiver
            SenderViewModel sender = new SenderViewModel();
            ReceiverViewModel receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe();

            // Set message content
            sender.SentMessage = "hello";

            // Capture orig values
            int origReceiverData = receiver.ReceivedData;
            bool origSenderData = sender.ReceivedData;

            // Send message
            sender.SendSimpleMessage();

            // Assert message was received
            Assert.AreEqual<string>(sender.SentMessage, receiver.ReceivedMessage);

            // Assert receiver and sender data have not changed
            Assert.AreEqual<int>(origReceiverData, receiver.ReceivedData);
            Assert.AreEqual<bool>(origSenderData, sender.ReceivedData);
        }
        public void TestTwoWayMessage()
        {
            // Create sender and receiver
            SenderViewModel sender = new SenderViewModel();
            ReceiverViewModel receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe();

            // Capture orig values
            string origReceiverMessage = receiver.ReceivedMessage;
            int origReceiverData = receiver.ReceivedData;

            // Set message content
            sender.SentData = new Random().Next(100);
            receiver.SentData = true;

            // Send message
            sender.SendTwoWayMessage();

            // Assert data was received
            Assert.AreEqual<int>(sender.SentData, receiver.ReceivedData);

            // Assert data was sent
            Assert.AreEqual<bool>(receiver.SentData, sender.ReceivedData);

            // Assert receiver and sender data have not changed
            Assert.AreEqual<string>(origReceiverMessage, receiver.ReceivedMessage);
        }
        public void TestReceiverUnregister()
        {
            // Create sender and receiver
            SenderViewModel sender = new SenderViewModel();
            ReceiverViewModel receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe();

            // Set message content
            sender.SentData = new Random().Next(100);

            // Send message
            sender.SendOneWayMessage();

            // Assert message was received
            Assert.AreEqual<int>(sender.SentData, receiver.ReceivedData);

            // Unregister receiver
            receiver.Unsubscribe();

            // Send another message
            sender.SentData += 100;
            sender.SendOneWayMessage();

            // Assert message was NOT received
            Assert.AreNotEqual<int>(sender.SentData, receiver.ReceivedData);
        }
        public void TestReceiverCleanup()
        {
            // Create sender and receiver
            SenderViewModel sender = new SenderViewModel();
            ReceiverViewModel receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe();

            // Set message content
            sender.SentMessage = "hello";

            // Send message
            sender.SendSimpleMessage();

            // Assert message was received
            Assert.AreEqual<string>(sender.SentMessage, receiver.ReceivedMessage);

            // Try to GC reciever
            WeakReference weakReceiver = new WeakReference(receiver);
            receiver = null;
            GC.Collect();
            Thread.Sleep(1000);

            // Assert the receiver was allowed to be GC'd
            Assert.IsFalse(weakReceiver.IsAlive, "Receiver has not been GC'd");

            // Send another message
            sender.SentMessage = "hello again";
            sender.SendSimpleMessage();

            // Assert the receiver is still not alive
            Assert.IsFalse(weakReceiver.IsAlive, "Receiver has not been GC'd after sending message");
        }
Example #5
0
        public void CreateSubscription(ReceiverViewModel receiver)
        {
            List <ReceiverViewModel> allReceivers = this.LoadReceivers();

            allReceivers.Add(receiver);

            using (TextWriter writer = new StreamWriter(receiversFile, false))
            {
                writer.WriteLine(new JavaScriptSerializer().Serialize(allReceivers));
            }
        }
Example #6
0
 public ActionResult Index(ReceiverViewModel receiver)
 {
     if (ModelState.IsValid)
     {
         //Luu session cho receiver
         SessionHelper.SetReceiverSession(receiver);
         return(RedirectToAction("CheckoutByPayPal", "Checkout"));
     }
     else
     {
         return(View());
     }
 }
Example #7
0
        public async Task <IActionResult> Receiver(ReceiverViewModel model)
        {
            ReceiverDto receiverDto = new ReceiverDto()
            {
                FirstName     = model.FirstName,
                LastName      = model.LastName,
                PhoneNumber   = model.PhoneNumber,
                EventLocation = model.EventLocation,
                Address       = model.Address,
                TotalAmount   = model.TotalAmount
            };
            await _receiverService.Receiver(receiverDto);

            return(View("Index"));
        }
        public void TestReceiverCleanup()
        {
            // Create sender and receiver
            var sender = new SenderViewModel();
            var receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe(MessageTokens.Test + "_TestReceiverCleanup");

            // Set message content
            sender.SentMessage = "hello";

            // Listen for response
            var wait = new AutoResetEvent(false);
            receiver.SimpleMessageReceived += (o, args) => wait.Set();

            // Send message
            sender.SendSimpleMessageAsync(MessageTokens.Test + "_TestReceiverCleanup");

            // Wait for response
            if (!wait.WaitOne(TimeSpan.FromSeconds(15)))
                Assert.Fail("Message not received in timeout");

            // Assert message was received
            Assert.AreEqual<string>(sender.SentMessage, receiver.ReceivedMessage);

            // Try to GC reciever
            var weakReceiver = new WeakReference(receiver);
            receiver = null;
            GC.Collect();
            #if NETFX_CORE
            Task.Delay(1000).Wait();
            #else
            Thread.Sleep(1000);
            #endif

            // Assert the receiver was allowed to be GC'd
            Assert.IsFalse(weakReceiver.IsAlive, "Receiver has not been GC'd");

            // Send another message
            sender.SentMessage = "hello again";
            sender.SendSimpleMessage(MessageTokens.Test + "_TestReceiverCleanup");

            // Assert the receiver is still not alive
            Assert.IsFalse(weakReceiver.IsAlive, "Receiver has not been GC'd after sending message");
        }
Example #9
0
        public ActionResult CheckoutSuccess()
        {
            //Luu thong tin don hang tai day dua vao thong tin session
            //kiem tra coi da dang nhap hay chua de hien thi View tuong ung

            string            username = SessionHelper.GetUserSession();
            ReceiverViewModel receiver = SessionHelper.GetReceiverSession();
            OrderDetail       order    = new OrderDetail();

            if (username != null)                                               //da dang nhap //thong tin nguoi mua
            {
                order.listCartSession = SessionHelper.GetCartSession(username); //san pham
                if (receiver != null)                                           //thong tin nguoi nhan
                {
                    order.TotalMoney = code.Summoney(order.listCartSession);
                    order.receive    = receiver;

                    code.AddOrder(order);
                    SendNotificationEmail(SessionHelper.GetUserSession(), order.TotalMoney);
                    //xóa session giỏ hàng và người nhận đi.
                    Session["receiver"] = null;
                    Session[username]   = null;
                }
            }
            else
            {
                order.listCartSession = SessionHelper.GetCartSession("cart"); //san pham
                if (receiver != null)                                         //thong tin nguoi nhan
                {
                    order.TotalMoney = code.Summoney(order.listCartSession);
                    order.receive    = receiver;
                    code.AddOrder(order);
                    //xóa session giỏ hàng và người nhận đi.
                    HttpContext.Session["receiver"] = null;
                    HttpContext.Session[username]   = null;
                }
            }

            return(View());
        }
        public void TestSimpleMessage()
        {
            // Create sender and receiver
            var sender = new SenderViewModel();
            var receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe(MessageTokens.Test + "_TestSimpleMessage");

            // Set message content
            sender.SentMessage = "hello";

            // Capture orig values
            int origReceiverData = receiver.ReceivedData;
            bool origSenderData = sender.ReceivedData;

            // Listen for response
            var wait = new AutoResetEvent(false);
            receiver.SimpleMessageReceived += (o, args) => wait.Set();

            // Send message
            sender.SendSimpleMessageAsync(MessageTokens.Test + "_TestSimpleMessage");

            // Wait for response
            if (!wait.WaitOne(TimeSpan.FromSeconds(15)))
                Assert.Fail("Message not received in timeout");

            // Unregister to receive messages
            receiver.Unsubscribe(MessageTokens.Test + "_TestSimpleMessage");

            // Assert message was received
            Assert.AreEqual<string>(sender.SentMessage, receiver.ReceivedMessage);

            // Assert receiver and sender data have not changed
            Assert.AreEqual<int>(origReceiverData, receiver.ReceivedData);
            Assert.AreEqual<bool>(origSenderData, sender.ReceivedData);
        }
        public void TestReceiverUnregister()
        {
            // Create sender and receiver
            var sender = new SenderViewModel();
            var receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe(MessageTokens.Test + "_TestReceiverUnregister");

            // Set message content
            sender.SentData = new Random().Next(100);

            // Listen for response
            var wait = new AutoResetEvent(false);
            receiver.OneWayMessageReceived += (o, args) => wait.Set();

            // Send message
            sender.SendOneWayMessageAsync(MessageTokens.Test + "_TestReceiverUnregister");

            // Wait for response
            if (!wait.WaitOne(TimeSpan.FromSeconds(15)))
                Assert.Fail("Message not received in timeout");

            // Assert message was received
            Assert.AreEqual<int>(sender.SentData, receiver.ReceivedData);

            // Unregister receiver
            receiver.Unsubscribe(MessageTokens.Test + "_TestReceiverUnregister");

            // Send another message
            sender.SentData += 100;
            sender.SendOneWayMessage(MessageTokens.Test + "_TestReceiverUnregister");

            // Assert message was NOT received
            Assert.AreNotEqual<int>(sender.SentData, receiver.ReceivedData);
        }
Example #12
0
 public ActionResult Subscribe(ReceiverViewModel model)
 {
     this.CreateSubscription(model);
     return(Redirect(Request.UrlReferrer.ToString()));
 }
 public static void SetReceiverSession(ReceiverViewModel receiver)
 {
     HttpContext.Current.Session["receiver"] = receiver;
 }
        public void TestRepeatSend()
        {
            // Create sender and receiver
            SenderViewModel sender = new SenderViewModel();
            ReceiverViewModel receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe();

            // Set init value
            int val = new Random().Next(100);

            // Iterate 3 times
            for (int i = 0; i < 3; i++)
            {
                // Set message content
                sender.SentData = val;

                // Send message
                sender.SendOneWayMessage();

                // Assert message was received
                Assert.AreEqual<int>(sender.SentData, receiver.ReceivedData);

                // Increment value
                val += 100;
            }
        }
        public void TestRepeatSend()
        {
            // Create sender and receiver
            var sender = new SenderViewModel();
            var receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe(MessageTokens.Test + "_TestRepeatSend");

            // Set init value
            int val = new Random().Next(100);

            // Iterate 3 times
            for (int i = 0; i < 3; i++)
            {
                // Set message content
                sender.SentData = val;

                // Listen for response
                var wait = new AutoResetEvent(false);
                receiver.OneWayMessageReceived += (o, args) => wait.Set();

                // Send message
                sender.SendOneWayMessageAsync(MessageTokens.Test + "_TestRepeatSend");

                // Wait for response
                if (!wait.WaitOne(TimeSpan.FromSeconds(15)))
                    Assert.Fail("Message not received in timeout");

                // Assert message was received
                Assert.AreEqual<int>(sender.SentData, receiver.ReceivedData);

                // Increment value
                val += 100;
            }

            // Unregister to receive messages
            receiver.Unsubscribe(MessageTokens.Test + "_TestRepeatSend");
        }