private void btnDelete_Click(object sender, RoutedEventArgs e) { if (MessageBox.Show("确认删除吗?", "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { using (new WaitCursor()) { SCA.Model.LoopModel loop = ((SCA.WPF.ViewModelsRoot.ViewModels.DetailInfo.DeviceInfo8036ViewModel) this.DataContext).TheLoop; var selectedItems = DataGrid_Device.SelectedItems; if (selectedItems != null) { DeviceService8036 deviceService = new DeviceService8036(); LoopService loopService = new LoopService(loop.Controller); deviceService.TheLoop = loop; foreach (SCA.WPF.ViewModelsRoot.ViewModels.DetailInfo.EditableDeviceInfo8036 r in selectedItems) { if (r != null) { deviceService.DeleteBySpecifiedID(r.ID); } } //刷新界面 ((SCA.WPF.ViewModelsRoot.ViewModels.DetailInfo.DeviceInfo8036ViewModel) this.DataContext).DeviceInfoObservableCollection = new SCA.WPF.ViewModelsRoot.ViewModels.DetailInfo.EditableDeviceInfo8036Collection(loop, loop.GetDevices <Model.DeviceInfo8036>()); } } } }
static async Task Main(string[] args) { var ct = new CancellationToken(); var encoding = Encoding.UTF8; var jsonSerializerSettings = GetJsonSerializerSettings(); var devDir = Path.Combine("/", "Users", "rianjs", "dev"); var dataDir = Path.Combine(devDir, "chaucer", "Chaucer", "data"); var openLibraryAuthorFile = "ol_dump_authors_2021-03-19.txt.gz"; var openLibraryPublicationsFile = "ol_dump_editions_2021-03-19.txt.gz"; var gzAuthors = Path.Combine(dataDir, openLibraryAuthorFile); var fs = new Filesystem(); var compressingRefreshingDnsHandler = new SocketsHttpHandler { PooledConnectionLifetime = TimeSpan.FromSeconds(120), AutomaticDecompression = DecompressionMethods.All, }; var httpClient = new HttpClient(compressingRefreshingDnsHandler); const string rssUrl = "https://archive.org/services/collection-rss.php?collection=ol_exports"; var openLibRssReader = new OpenLibraryRssReader(httpClient, rssUrl, GetLogger <IOpenLibraryCatalogReader>()); var feedItems = await openLibRssReader.GetLatestVersionForTypes(OpenLibArchiveTypeExtensions.KnownArchiveTypes(), ct); const string archivesBucketName = "chaucer-openlib-versions"; const string archivesTableName = archivesBucketName; var(credentials, regionEndpoint) = Config.GetAwsConfig(awsProfileName: "chaucer-tform", region: "us-east-2"); var s3Client = new AmazonS3Client(credentials, regionEndpoint); var s3Streamer = new S3Streamer(httpClient, s3Client, chunkSizeBytes: 5 * _mBytes, GetLogger <IStorageStreamer>()); var primitiveDynamo = new AmazonDynamoDBClient(credentials, regionEndpoint); var dynamoPocoClient = new DynamoDBContext(primitiveDynamo); var openLibArchive = new AwsOpenLibraryArchivist( s3Streamer, s3Client, archivesBucketName, dynamoPocoClient, archivesTableName, primitiveDynamo, new Clock(), GetLogger <IOpenLibraryArchivist>()); var worker = new AwsOpenLibraryArchiveWorker(openLibArchive, openLibRssReader, OpenLibArchiveTypeExtensions.KnownArchiveTypes(), GetLogger <AwsOpenLibraryArchiveWorker>()); var awsOpenLibLoopSvc = new LoopService(worker, TimeSpan.FromHours(24), _cts, GetLogger <LoopService>()); await awsOpenLibLoopSvc.LoopAsync(); }