public void InstallUpdates() { var toInstall = Packs .Where(x => x.Version > OldVersion) .OrderBy(x => x.Version); foreach (var itm in toInstall) { Log.AppendFormat("Installing pack {0}...{1}", itm.Version, Environment.NewLine); itm.Load(); var args = new BeforePackInstallEventArgs() { Pack = itm }; OnBeforeInstallPack(args); if (!args.Cancel) { itm.Install(); Log.Append(itm.Log); OnAfterInstallPack(itm); } ; Log.AppendFormat("Pack {0} has been installed{1}{1}", itm.Version, Environment.NewLine); } ; }
public static void Save() { foreach (var pack in Packs.Where(p => !p.IsDefault)) { var root = new XElement(DocumentRootName); root.SetAttributeValue(IsDefaultAttributeName, pack.IsDefault); foreach (var smiley in pack.Smileys) { var elem = new XElement(SmileyElementName); elem.SetAttributeValue(FileNameAttributeName, smiley.FileName); elem.SetAttributeValue(ShortcutsAttributeName, string.Join(SmileyShortcutsSeparator.ToString(), smiley.Shortcuts)); root.Add(elem); } string manifestPath = Path.Combine(GetPath(pack), ManifestFileName); new XDocument(root).Save(File.Open(manifestPath, FileMode.Create)); } }