public void WriteYamlFile(string yamlFile, ManifestPackage_1_0_0 package) { using (StreamWriter streamWriter = File.CreateText(yamlFile)) { _serializer.Serialize(streamWriter, package); } }
public LoadManifestsResult LoadAllManifests(IEnumerable <string> yamlFiles) { LoadManifestsResult result = new LoadManifestsResult(); Dictionary <string, MultiFileYaml> multiFileYamlDict = new Dictionary <string, MultiFileYaml>(); foreach (string yamlFilePath in yamlFiles) { ReadYamlFileResult ryfr = ReadYamlFile(yamlFilePath); if (ryfr.ErrorMessage != null) { result.Messages.Add(yamlFilePath + ": " + ryfr.ErrorMessage); continue; } ManifestPackage_1_0_0 package = ryfr.Manifest; string yamlFolder = Path.GetDirectoryName(yamlFilePath); MultiFileYaml multiFileYaml = null; if (multiFileYamlDict.TryGetValue(yamlFolder, out multiFileYaml) == false) { multiFileYaml = new MultiFileYaml(); multiFileYamlDict.Add(yamlFolder, multiFileYaml); } multiFileYaml.AddPackage(package, yamlFilePath); } result.Manifests = multiFileYamlDict.Values; return(result); }
public void AddPackage(ManifestPackage_1_0_0 package, string yamlFilePath) { if (package.ManifestType == "singleton") //todo: allow only one - and no 'version' { _mainYamlFilePath = yamlFilePath; _mainPackage = package; _defaultLocalePackage = package; _installerPackage = package; _installers.AddRange(package.Installers); // todo: should be only one in a singleton? } else if (package.ManifestType == "version") //todo: allow only one - an no 'singleton' { _mainYamlFilePath = yamlFilePath; _mainPackage = package; } else if (package.ManifestType == "defaultLocale") { if (_defaultLocalePackage != null) { throw new Exception("package is already set!"); } _defaultLocalePackage = package; } else if (package.ManifestType == "locale") { LocalePackages.Add(package); } else if (package.ManifestType == "installer") { if (_installerPackage != null) { throw new Exception("package is already set!"); } _installerPackage = package; _installers.AddRange(package.Installers); } else { throw new Exception(); //todo: unexpected type } }
public ReadYamlFileResult ReadYamlFile(string yamlFile) { // TODO: Firetrust.MailWasherPro -> copyright sign works with Encoding.Default, but other packages have wrong signs then using (StreamReader streamReader = new StreamReader(yamlFile, true)) { try { ManifestPackage_1_0_0 package = _deserializer.Deserialize <ManifestPackage_1_0_0>(streamReader); return(new ReadYamlFileResult() { Manifest = package, FilePath = yamlFile }); } catch (YamlException ex) { return(new ReadYamlFileResult() { ErrorMessage = GetMessage(ex), FilePath = yamlFile }); } } }