private async Task Index(PackageMessage message) { var task = new IndexPackageTask(configuration, notifier, support, addInfoBuilder, pdbStoreManager, fileCompressor); // ReSharper disable RedundantArgumentName await ProcessPackage( message.UserInfo, message.FeedName, message.PackageName, PackageState.IndexingQueued, PackageState.DamagedIndexing, tryWithPackageItemBefore : async pi => { Trace.TraceInformation("Indexing package {0}", pi); // ReSharper disable once ConvertToLambdaExpression return(await pi.Move(PackageState.Indexing, pi.Name)); }, tryWithPackage : async(pi, p) => { await task.IndexPackage(message.UserInfo, pi.Feed, pi.Name, pi, p); }, tryWithPackageItemAfter : async pi => { await pi.Delete(); Trace.TraceInformation("Finished indexing package {0}", pi); }); // ReSharper restore RedundantArgumentName }
private async Task Retry(PackageMessage message) { var deleteTask = new DeletePackageTask(notifier, support); // ReSharper disable RedundantArgumentName if (!await ProcessPackage( message.UserInfo, message.FeedName, message.PackageName, PackageState.Partial, PackageState.DamagedDeleting, tryWithPackageItemBefore: async pi => { Trace.TraceInformation("Retrying package {0}", pi); return(await pi.Move(PackageState.Deleting, pi.Name)); }, tryWithPackage: async(pi, p) => { await deleteTask.DeletePackage(message.UserInfo, pi.Feed, pi.Name, pi, p); }, tryWithPackageItemAfter: async pi => { await pi.Delete(); })) // ReSharper restore RedundantArgumentName { return; } var indexTask = new IndexPackageTask(configuration, notifier, support, addInfoBuilder, pdbStoreManager, fileCompressor); // ReSharper disable RedundantArgumentName if (!await ProcessPackage( message.UserInfo, message.FeedName, message.PackageName, PackageState.Original, PackageState.DamagedIndexing, tryWithPackageItemBefore: async pi => { return(await pi.Copy(PackageState.Indexing, pi.Name)); }, tryWithPackage: async(pi, p) => { await indexTask.IndexPackage(message.UserInfo, pi.Feed, pi.Name, pi, p); }, tryWithPackageItemAfter: async pi => { Trace.TraceInformation("Finished retrying package {0}", pi); await pi.Delete(); })) // ReSharper restore RedundantArgumentName { return; } }