Example #1
0
        public static CheckForUpdatesResponse CheckForUpdates(bool verbose = false)
        {
            try
            {
                CheckForUpdatesResponse response;

                AppUsageData data = AppSettings.Default.UsageData;
                data.Reload();
                if (data.LastCheckedForUpdates.GetValueOrDefault() < DateTime.Now.AddHours(-1))
                {
                    response = WebApiClient.CheckForUpdates(AppSettings.Default.SdkTable.Revision);

                    if (!string.IsNullOrEmpty(response.NewSdkTable) && SerDes.TryXmlStringToObject(response.NewSdkTable, out SdkTable table))
                    {
                        SerDes.ObjectToXmlFile(table, AppSettings.Default.SdkTableCurrentPath);
                        AppSettings.Default.SdkTable = table;
                    }

                    data.LastCheckedForUpdates = DateTime.Now;
                    data.UpToDate    = response.UpToDate;
                    data.NewVersion  = response.NewVersion;
                    data.DownloadUrl = response.DownloadUrl;
                    data.Save();
                }
                else
                {
                    // prevent new Flutnet installations to report
                    // old server responses
                    if (!data.UpToDate && !string.IsNullOrEmpty(data.NewVersion))
                    {
                        string productVersion = Assembly.GetEntryAssembly().GetProductVersion();
                        int    compare        = VersionUtils.Compare(productVersion, data.NewVersion);
                        if (compare >= 0)
                        {
                            data.UpToDate = true;
                            data.Save();
                        }
                    }

                    response = new CheckForUpdatesResponse
                    {
                        UpToDate    = data.UpToDate,
                        NewVersion  = data.NewVersion,
                        DownloadUrl = data.DownloadUrl
                    };
                }
                return(response);
            }
            catch (Exception ex)
            {
                Log.Ex(ex);
                Console.WriteLine(ex);
                throw;
            }
        }
Example #2
0
        //[Fact]
        public async Task Should_Receive_Events_From_Subscription()
        {
            //Arrange
            var serDes  = new SerDes();
            var stream1 = "teststream-1";
            var stream2 = "teststream-2";
            var events1 = new List <IEvent>
            {
                new TestEvent1
                {
                    CreationDate   = DateTime.Now,
                    EventId        = Guid.NewGuid(),
                    SequenceNumber = 0
                },
                new TestEvent1
                {
                    CreationDate   = DateTime.Now,
                    EventId        = Guid.NewGuid(),
                    SequenceNumber = 1
                }
            };
            var events2 = new List <IEvent>
            {
                new TestEvent2
                {
                    CreationDate   = DateTime.Now,
                    EventId        = Guid.NewGuid(),
                    SequenceNumber = 0
                }
            };

            var totalEventsCount = events1.Count + events2.Count;
            var sut = new GetEventStoreSubscriber(serDes, Mock.Of <ILogger <GetEventStoreSubscriber> >());
            var pub = new GetEventStoreClient(serDes, Mock.Of <ILogger <GetEventStoreClient> >());
            await pub.AppendEventsToStreamAsync(stream1, events1, null, CancellationToken.None);

            await pub.AppendEventsToStreamAsync(stream2, events2, null, CancellationToken.None);

            var messagesReceived = 0;
            var cts = new CancellationTokenSource();
            //Act
            await sut.SubscribeToAllAsync(message =>
            {
                messagesReceived++;
                if (messagesReceived >= totalEventsCount)
                {
                    cts.Cancel();
                }
                return(Task.CompletedTask);
            }, cts.Token);

            //Assert
            messagesReceived.Should().Be(totalEventsCount);
        }