ZeroInstall.Publish.ImplementationUtils.Build C# (CSharp) Method

Build() private method

private Build ( [ retrievalMethod, [ handler, [ keepDownloads = null ) : Implementation
retrievalMethod [
handler [
keepDownloads [
return Implementation
        public static Implementation Build([NotNull] RetrievalMethod retrievalMethod, [NotNull] ITaskHandler handler, [CanBeNull] IStore keepDownloads = null)
        {
            #region Sanity checks
            if (retrievalMethod == null) throw new ArgumentNullException(nameof(retrievalMethod));
            if (handler == null) throw new ArgumentNullException(nameof(handler));
            #endregion

            var implementationDir = retrievalMethod.DownloadAndApply(handler);
            try
            {
                var digest = GenerateDigest(implementationDir, handler, keepDownloads);
                return new Implementation {ID = @"sha1new=" + digest.Sha1New, ManifestDigest = digest, RetrievalMethods = {retrievalMethod}};
            }
            finally
            {
                implementationDir.Dispose();
            }
        }
        #endregion

Usage Example

示例#1
0
        public void BuildSingleFile()
        {
            using (var originalStream = SingleFileData.ToStream())
                using (var microServer = new MicroServer(SingleFileName, originalStream))
                {
                    var implementation = ImplementationUtils.Build(new SingleFile {
                        Href = microServer.FileUri, Destination = SingleFileName
                    }, new SilentTaskHandler());
                    Assert.AreEqual(_singleFileSha256Digest, "sha256new_" + implementation.ManifestDigest.Sha256New);

                    var file = (SingleFile)implementation.RetrievalMethods[0];
                    Assert.AreEqual(originalStream.Length, file.Size);
                }
        }
All Usage Examples Of ZeroInstall.Publish.ImplementationUtils::Build