Example #1
0
        public override void onConnected(TransmitHandler handler)
        {
            transmitHandler = handler;
            if (localFileMap.fileList.Count == 0)
            {
                throw new ArgumentException("No files in localFileMap, initialization not done");
            }
            foreach (File file in localFileMap.fileList)
            {
                Console.WriteLine(file.name);

                Msg msg = new Msg(RemoteFile.Constants.RMF_MSG_FILEINFO, (uint)0, (uint)0, (object)file);
                msgQueue.Add(msg);
            }
        }
Example #2
0
        static int Main(string[] args)
        {
            Console.WriteLine("My.Data.Bandwidth Initialising...");

            var arguments = args.Select(x => x.ToLower()).ToList();

            var test    = new SpeedTestHandler();
            var persist = new PersistenceHandler <SpeedTestDataModel>();

            var httpClientFactory = new ServiceCollection()
                                    .AddHttpClient()
                                    .BuildServiceProvider()
                                    .GetService <IHttpClientFactory>();

            var transmit = new TransmitHandler <SpeedTestDataModel>(httpClientFactory);
            var announce = new ConsoleOutputHandler <SpeedTestDataModel>();
            var process  = new ResultHandler <SpeedTestDataModel>();

            var success = true;

            Console.WriteLine("My.Data.Bandwidth Starting...");
            while (success)
            {
                var result = test.Execute(DateTimeOffset.UtcNow).GetAwaiter().GetResult();

                // abort on error if instructed, else continue forever
                if (
                    arguments.Any() &&
                    arguments.Contains("abortonerror") &&
                    result.IsError)
                {
                    // error and exit
                    success = !result.IsError;
                    persist.Execute(result).Wait();
                    bool transmitViaAPI = false; // TODO via settings
                    if (transmitViaAPI)
                    {
                        transmit.Execute(result).Wait();
                    }
                    announce.Execute(result).Wait();
                }
                else if (result.IsError)
                {
                    // error and repeat
                    persist.Execute(result).Wait();
                    bool transmitViaAPI = false; // TODO via settings
                    if (transmitViaAPI)
                    {
                        transmit.Execute(result).Wait();
                    }
                    announce.Execute(result).Wait();
                }
                else
                {
                    // all is well
                    persist.Execute(result).Wait();
                    bool transmitViaAPI = false; // TODO via settings
                    if (transmitViaAPI)
                    {
                        transmit.Execute(result).Wait();
                    }
                    announce.Execute(result).Wait();
                    process.Execute(result).Wait();
                }
            }
            return(1); // always returns an error - because it should run forever.
        }