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>());
             }
         }
     }
 }
Exemple #2
0
        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();
        }