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); }
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); }