Warehouse.PackageHandling.DeployedConfigFile.Save C# (CSharp) Метод

Save() публичный Метод

public Save ( ) : void
Результат void
        public void Save() {

            if (string.IsNullOrEmpty(this.File)) {
                throw new InvalidOperationException("Can not save configuration file without a filename");
            }

            this.Save(this.File);
        }

Same methods

DeployedConfigFile::Save ( string file ) : void

Usage Example

Пример #1
0
        /// <summary>
        /// Unpack zipped package stream
        /// </summary>
        /// <param name="sourceUrl"></param>
        /// <param name="packageZip">Zipped package stream</param>
        /// <param name="appRootFolder"></param>
        /// <param name="imageResourceFolder">Folder where app image will be created</param>
        /// <param name="replace">Replace existing app if any</param>
        /// <param name="config"></param>
        public static void Unpack(Stream packageZip, string sourceUrl, string storeUrl, string appRootFolder, string imageResourceFolder, out DeployedConfigFile config) {

            lock (PackageManager.locker) {

                if (packageZip == null) throw new ArgumentNullException("packageZip");
                if (sourceUrl == null) throw new ArgumentNullException("sourceUrl");
                if (storeUrl == null) throw new ArgumentNullException("storeUrl");
                if (appRootFolder == null) throw new ArgumentNullException("appRootFolder");

                string createdDestinationFolder = null;
                try {

                    using (ZipArchive archive = new ZipArchive(packageZip, ZipArchiveMode.Read)) {

                        // Get Configuration
                        PackageConfigFile packageConfig;
                        ReadConfiguration(archive, out packageConfig);

                        // Validate configuration
                        ValidateConfiguration(archive, packageConfig);

                        // Prepare to extract package
                        string destinationFolder = Path.Combine(appRootFolder, packageConfig.Namespace);
                        destinationFolder = Path.Combine(destinationFolder, packageConfig.Channel);
                        destinationFolder = Path.Combine(destinationFolder, packageConfig.Version);

                        try {

                            if (Directory.Exists(destinationFolder)) {
                                throw new InvalidOperationException("Application already installed.", new InvalidOperationException(string.Format("Destination folder exists, {0}", destinationFolder)));
                            }

                            createdDestinationFolder = Utils.CreateDirectory(destinationFolder);

                            // Extract package
                            archive.ExtractToDirectory(destinationFolder);

                            string imageUri = string.Empty;

                            // Unpack app image to starcounter admin folder
                            UnpackAppImage(archive, packageConfig, imageResourceFolder, out imageUri);

                            // Create app configuration file
                            //config = new DeployedConfigFile();
                            CreateConfig(packageConfig, sourceUrl, storeUrl, imageUri, out config);

                            //Uri u = new Uri(sourceUrl);
                            //if (u.IsFile) {
                            //    config.SourceID = string.Format("{0:X8}", u.LocalPath.GetHashCode());
                            //}
                            //else {
                            //    config.SourceID = u.Segments[u.Segments.Length - 1];
                            //}

                            //config.SourceUrl = sourceUrl;
                            //config.ImageUri = imageUri;

                            // Save Application configuration
                            string configFile = Path.Combine(destinationFolder, config.Namespace + PackageManager.deployedConfigurationFileExtention);
                            config.Save(configFile);
                        }
                        catch (Exception) {

                            if (createdDestinationFolder != null) {
                                Directory.Delete(createdDestinationFolder, true);
                            }
                            throw;
                        }
                    }
                }
                catch (InvalidDataException e) {
                    throw new InvalidOperationException("Failed to install package, Invalid package format", e);
                }
                catch (Exception e) {

                    throw new InvalidOperationException("Failed to install package, " + e.Message, e);
                }
            }
        }