Пример #1
0
        public void SplitWptsTest()
        {
            // Arrange
            var msg = new NatsMessage(
                new IndividualNatsMessage(
                    "",
                    "",
                    NatsDirection.West,
                    @"042049 EGGXZOZX
A [WPTS]
..."),
                new IndividualNatsMessage(
                    "",
                    "",
                    NatsDirection.East,
                    @"042049 CZQXZQZX
U TUDEP 52/50 53/40 54/30 54/20 DOGAL BEXET
..."));

            // Act
            var parser = new NatsParser(msg, null);
            var result = parser.Parse();

            // Assert
            var trackU = (from trk in result
                          where trk.Ident == "U"
                          select trk).First();

            Assert.IsTrue(trackU.MainRoute.SequenceEqual(
                              new[] { "TUDEP", "5250N", "5340N", "5430N", "5420N", "DOGAL", "BEXET" }));
        }
Пример #2
0
        private void OnSelectedItemChanged(NatsMessage message)
        {
            Model.Subject = message.Subject;
            Model.Data    = message.Data;

            InvokeAsync(StateHasChanged);
        }
Пример #3
0
        public void ParseDateFailTest()
        {
            var(success, _) = NatsMessage.ParseDate("123");
            Assert.IsFalse(success);

            (success, _) = NatsMessage.ParseDate("2017/06/07 xx:38 GMT");
            Assert.IsFalse(success);
        }
Пример #4
0
        protected void SaveMessage()
        {
            var message = new NatsMessage
            {
                Url     = Model.Url,
                Subject = Model.Url,
                Data    = Model.Data
            };

            NatsService.Save(message);
        }
Пример #5
0
        protected void SaveMessage()
        {
            var message = new NatsMessage
            {
                TimeStamp = DateTime.Now,
                Subject   = Model.Subject,
                Data      = Model.Data
            };

            NatsService.Save(message);
        }
Пример #6
0
        private ITrackMessageProvider DownloaderStub()
        {
            var directory  = AppDomain.CurrentDomain.BaseDirectory;
            var htmlSource = File.ReadAllText(
                directory + "/QSP/RouteFinding/Tracks/Nats/North Atlantic Tracks.html");
            var msgs = new MessageSplitter(htmlSource).Split();

            int westIndex = msgs[0].Direction == NatsDirection.West ? 0 : 1;
            int eastIndex = 1 - westIndex;
            var msg       = new NatsMessage(msgs[westIndex], msgs[eastIndex]);

            return(new TrackMessageProvider(msg));
        }
Пример #7
0
        private void OnItemClicked(string colName, NatsMessage message)
        {
            switch (colName)
            {
            case nameof(NatsMessage.Inspect):
                Inspector.Data = message.Data;
                NavMgr.NavigateTo("/inspector");
                break;

            case nameof(NatsMessage.Pin):
                NatsService.Save(message.Clone());
                break;
            }
        }
Пример #8
0
        public override string Execute(NatsService natsService, ExecutorService executorService)
        {
            foreach (var connection in natsService.Connections)
            {
                NatsMessage msg = new NatsMessage
                {
                    Subject = Param1,
                    Data    = Param2,
                    Url     = connection.Url
                };
                natsService.Publish(msg);
            }

            return("Message sent.");
        }
Пример #9
0
        protected void RequestMessage()
        {
            foreach ((int i, Connection item)connection in UrlGrid.GetCheckedItems())
            {
                var message = new NatsMessage
                {
                    TimeStamp = DateTime.Now,
                    Url       = connection.item.Url,
                    Subject   = Model.Subject,
                    Data      = Model.Data
                };

                NatsService.Request(message);
            }
        }
Пример #10
0
        private void Publish(string subject, string data)
        {
            foreach ((int i, Connection item)connection in UrlGrid.GetCheckedItems())
            {
                var msg = new NatsMessage
                {
                    TimeStamp = DateTime.Now,
                    Url       = connection.item.Url,
                    Subject   = subject,
                    Data      = data
                };

                NatsService.Publish(msg);
            }
        }
Пример #11
0
        public void CategorizeWestEastTest()
        {
            // Arrange
            var west = new IndividualNatsMessage(
                "",
                "",
                NatsDirection.West,
                @"042049 EGGXZOZX
A [WPTS]
...
B [WPTS]
...
C [WPTS]
...");

            var east = new IndividualNatsMessage(
                "",
                "",
                NatsDirection.East,
                @"042049 CZQXZQZX
U [WPTS]
...
V [WPTS]
...
W [WPTS]
...");

            var msg = new NatsMessage(west, east);

            // Act
            var parser = new NatsParser(msg, null);
            var result = parser.Parse();

            // Assert
            Assert.AreEqual(6, result.Count);
            Assert.IsTrue(ContainTrack(result, "A", NatsDirection.West));
            Assert.IsTrue(ContainTrack(result, "B", NatsDirection.West));
            Assert.IsTrue(ContainTrack(result, "C", NatsDirection.West));
            Assert.IsTrue(ContainTrack(result, "U", NatsDirection.East));
            Assert.IsTrue(ContainTrack(result, "V", NatsDirection.East));
            Assert.IsTrue(ContainTrack(result, "W", NatsDirection.East));
        }
Пример #12
0
        private void OnItemClicked(string colName, NatsMessage message)
        {
            switch (colName)
            {
            case nameof(NatsMessage.Inspect):
                Inspector.Data = message.Data;
                NavMgr.NavigateTo("/inspector");
                break;

            case nameof(NatsMessage.Run):
                Publish(message.Subject, message.Data);
                break;

            case nameof(NatsMessage.Trash):
                NatsService.Configuration.SavedMessages.Remove(message);
                NatsService.Save();
                MessageGrid.Remove(message);
                break;
            }
        }
Пример #13
0
        public override string Execute(NatsService natsService, ExecutorService executorService)
        {
            var result = "";

            foreach (var connection in natsService.Connections)
            {
                NatsMessage msg = new NatsMessage
                {
                    Subject = Param1,
                    Data    = Param2,
                    Url     = connection.Url
                };
                var reply = natsService.Request(msg, 1000);
                result += $"Url: {connection.Url} ";
                result += $"Data: {reply?.Data ?? "No data !"}";
                executorService.Message = reply;
            }

            return(result);
        }
Пример #14
0
 private void OnMessageAdded(NatsMessage message)
 {
     InvokeAsync(() => MessageGrid.Insert(0, message));
 }
Пример #15
0
 public void ParseDateTest()
 {
     var(success, date) = NatsMessage.ParseDate("2017/06/07 15:38 GMT");
     Assert.IsTrue(success);
     Assert.IsTrue(new DateTime(2017, 6, 7, 15, 38, 0, 0, DateTimeKind.Utc).Equals(date));
 }
Пример #16
0
 private void OnMessageReceived(NatsMessage message)
 {
     Message = message;
 }