Esempio n. 1
0
        protected override Task ExecuteAsync(CancellationToken stoppingToken)
        {
            var operation = Options switch
            {
                ReloadOptions reloadOptions => ReloadAsync(reloadOptions),
                CreateOptions createOptions => CreateAsync(createOptions),
                DeleteOptions deleteOptions => DeleteAsync(deleteOptions),
                ListOptions listOptions => ListAsync(listOptions),
                AddTripLinkOptions addOptions => AddTripLinkAsync(addOptions),
                RemoveTripLinkOptions removeOptions => RemoveTripLinkAsync(removeOptions),
                _ => throw new InvalidOperationException("Invalid options type!"),
            };

            _ = Host.StopAsync();
            return(operation);
        }
Esempio n. 2
0
        private async Task AddTripLinkAsync(AddTripLinkOptions options)
        {
            if (!Uri.TryCreate(options.ReportServer, UriKind.Absolute, out var url) ||
                (url.Scheme != Uri.UriSchemeHttp && url.Scheme != Uri.UriSchemeHttps))
            {
                Logger.LogError("The report server address is not valid!");
                return;
            }
            if (Configuration.StickyConfig.TripLinks.Any(x => x.Server == url))
            {
                Logger.LogError("There server address is already registered!");
                return;
            }

            await Configuration.AddReportServerAsync(url, options.ReportToken);
        }