/// <summary> /// Create a deep copy. /// </summary> /// <returns>Returns a deep copy.</returns> public TemplatePackageManifest Copy() { TemplatePackageManifest m = new TemplatePackageManifest(); int i; // m.Signature = Signature; m.HotDocsVersion = HotDocsVersion; m.PublishDateTime = PublishDateTime; m.ExpirationDate = ExpirationDate; m.WarningDays = WarningDays; m.ExtensionDays = ExtensionDays; m.MainTemplate = MainTemplate != null?MainTemplate.Copy() : new TemplateInfo(); if (OtherTemplates != null) { m.OtherTemplates = new TemplateInfo[OtherTemplates.Length]; for (i = 0; i < OtherTemplates.Length; i++) { m.OtherTemplates[i] = OtherTemplates[i].Copy(); } } else { m.OtherTemplates = new TemplateInfo[0]; } if (AdditionalFiles != null) { m.AdditionalFiles = new string[AdditionalFiles.Length]; for (i = 0; i < AdditionalFiles.Length; i++) { m.AdditionalFiles[i] = AdditionalFiles[i]; } } else { m.AdditionalFiles = new string[0]; } return(m); }
void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) { writer.WriteStartObject(); writer.WritePropertyName("location"); writer.WriteStringValue(Location); if (Optional.IsCollectionDefined(Tags)) { writer.WritePropertyName("tags"); writer.WriteStartObject(); foreach (var item in Tags) { writer.WritePropertyName(item.Key); writer.WriteStringValue(item.Value); } writer.WriteEndObject(); } writer.WritePropertyName("properties"); writer.WriteStartObject(); if (Optional.IsDefined(Description)) { writer.WritePropertyName("description"); writer.WriteStringValue(Description); } if (Optional.IsCollectionDefined(LinkedTemplates)) { writer.WritePropertyName("linkedTemplates"); writer.WriteStartArray(); foreach (var item in LinkedTemplates) { writer.WriteObjectValue(item); } writer.WriteEndArray(); } if (Optional.IsDefined(Metadata)) { writer.WritePropertyName("metadata"); #if NET6_0_OR_GREATER writer.WriteRawValue(Metadata); #else JsonSerializer.Serialize(writer, JsonDocument.Parse(Metadata.ToString()).RootElement); #endif } if (Optional.IsDefined(MainTemplate)) { writer.WritePropertyName("mainTemplate"); #if NET6_0_OR_GREATER writer.WriteRawValue(MainTemplate); #else JsonSerializer.Serialize(writer, JsonDocument.Parse(MainTemplate.ToString()).RootElement); #endif } if (Optional.IsDefined(UiFormDefinition)) { writer.WritePropertyName("uiFormDefinition"); #if NET6_0_OR_GREATER writer.WriteRawValue(UiFormDefinition); #else JsonSerializer.Serialize(writer, JsonDocument.Parse(UiFormDefinition.ToString()).RootElement); #endif } writer.WriteEndObject(); writer.WriteEndObject(); }
void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) { writer.WriteStartObject(); if (Optional.IsDefined(ManagedBy)) { writer.WritePropertyName("managedBy"); writer.WriteStringValue(ManagedBy); } if (Optional.IsDefined(Sku)) { writer.WritePropertyName("sku"); writer.WriteObjectValue(Sku); } writer.WritePropertyName("tags"); writer.WriteStartObject(); foreach (var item in Tags) { writer.WritePropertyName(item.Key); writer.WriteStringValue(item.Value); } writer.WriteEndObject(); writer.WritePropertyName("location"); writer.WriteStringValue(Location); writer.WritePropertyName("properties"); writer.WriteStartObject(); writer.WritePropertyName("lockLevel"); writer.WriteStringValue(LockLevel.ToSerialString()); if (Optional.IsDefined(DisplayName)) { writer.WritePropertyName("displayName"); writer.WriteStringValue(DisplayName); } if (Optional.IsDefined(IsEnabled)) { writer.WritePropertyName("isEnabled"); writer.WriteBooleanValue(IsEnabled.Value); } if (Optional.IsCollectionDefined(Authorizations)) { writer.WritePropertyName("authorizations"); writer.WriteStartArray(); foreach (var item in Authorizations) { writer.WriteObjectValue(item); } writer.WriteEndArray(); } if (Optional.IsCollectionDefined(Artifacts)) { writer.WritePropertyName("artifacts"); writer.WriteStartArray(); foreach (var item in Artifacts) { writer.WriteObjectValue(item); } writer.WriteEndArray(); } if (Optional.IsDefined(Description)) { writer.WritePropertyName("description"); writer.WriteStringValue(Description); } if (Optional.IsDefined(PackageFileUri)) { writer.WritePropertyName("packageFileUri"); writer.WriteStringValue(PackageFileUri.AbsoluteUri); } if (Optional.IsDefined(MainTemplate)) { writer.WritePropertyName("mainTemplate"); #if NET6_0_OR_GREATER writer.WriteRawValue(MainTemplate); #else JsonSerializer.Serialize(writer, JsonDocument.Parse(MainTemplate.ToString()).RootElement); #endif } if (Optional.IsDefined(CreateUiDefinition)) { writer.WritePropertyName("createUiDefinition"); #if NET6_0_OR_GREATER writer.WriteRawValue(CreateUiDefinition); #else JsonSerializer.Serialize(writer, JsonDocument.Parse(CreateUiDefinition.ToString()).RootElement); #endif } if (Optional.IsDefined(NotificationPolicy)) { writer.WritePropertyName("notificationPolicy"); writer.WriteObjectValue(NotificationPolicy); } if (Optional.IsDefined(LockingPolicy)) { writer.WritePropertyName("lockingPolicy"); writer.WriteObjectValue(LockingPolicy); } if (Optional.IsDefined(DeploymentPolicy)) { writer.WritePropertyName("deploymentPolicy"); writer.WriteObjectValue(DeploymentPolicy); } if (Optional.IsDefined(ManagementPolicy)) { writer.WritePropertyName("managementPolicy"); writer.WriteObjectValue(ManagementPolicy); } if (Optional.IsCollectionDefined(Policies)) { writer.WritePropertyName("policies"); writer.WriteStartArray(); foreach (var item in Policies) { writer.WriteObjectValue(item); } writer.WriteEndArray(); } writer.WriteEndObject(); writer.WriteEndObject(); }
public void RunStarted(object automationObject, Dictionary <string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams) { try { WizardForm form = new WizardForm(); DTE dte = automationObject as DTE; var solItems = dte.Solution.Projects.Cast <Project>().FirstOrDefault(p => p.Name == "Solution Items" || p.Kind == EnvDTE.Constants.vsProjectItemKindSolutionItems); if (solItems != null) { form.HideSolutionOptions(); } form.ShowDialog(); if (form.Cancelled) { throw new WizardBackoutException(); } templateParameters = new Dictionary <string, object> { { "UseModMenu", form.UseModMenu.IsChecked ?? false }, { "ModSettings", form.ModSettings.IsChecked ?? false }, { "AddModComponent", (form.UseModMenu.IsChecked ?? false) && (form.AddModComponent.IsChecked ?? false) }, { "UMMSettingsGUI", (form.ModSettings.IsChecked ?? false) && (form.UMMSettingsGUI.IsChecked ?? false) }, { "ModMenuExampleCode", (form.UseModMenu.IsChecked ?? false) && (form.ModMenuSampleCode.IsChecked ?? false) }, { "ModNamespace", replacementsDictionary["$safeprojectname$"] }, { "AuthorID", form.AuthorID.Text }, { "AuthorName", form.AuthorName.Text }, { "DisplayName", form.DisplayName.Text }, { "ModHomepage", form.ModHomepage.Text }, { "ModRepo", form.ModRepo.Text }, { "GameDirectory", form.GameDirectory.Text.Replace(@"\", @"\\") }, { "SteamExecutable", form.SteamExecutable.Text.Replace(@"\", @"\\") } }; outputModComponent = (form.UseModMenu.IsChecked ?? false) && (form.AddModComponent.IsChecked ?? false); outputPatchExamples = form.PatchSampleCode.IsChecked ?? false; outputRepoFile = form.AddRepoFile.IsChecked ?? false; replacementsDictionary.Add("$outputModComponent$", outputModComponent.ToString()); replacementsDictionary.Add("$outputPatchExamples$", outputPatchExamples.ToString()); replacementsDictionary.Add("$useModMenu$", (form.UseModMenu.IsChecked ?? false).ToString()); MainTemplate mainTemplate = new MainTemplate { Session = templateParameters }; mainTemplate.Initialize(); string mainContent = mainTemplate.TransformText(); replacementsDictionary.Add("$maincontent$", mainContent); ModComponentTemplate modComponentTemplate = new ModComponentTemplate { Session = templateParameters }; modComponentTemplate.Initialize(); string modComponentContent = modComponentTemplate.TransformText(); replacementsDictionary.Add("$modcomponentcontent$", modComponentContent); InfoTemplate infoTemplate = new InfoTemplate { Session = templateParameters }; infoTemplate.Initialize(); string infoContent = infoTemplate.TransformText(); replacementsDictionary.Add("$infocontent$", infoContent); PatchExamplesTemplate patchExamplesTemplate = new PatchExamplesTemplate { Session = templateParameters }; patchExamplesTemplate.Initialize(); string patchExamplesContent = patchExamplesTemplate.TransformText(); replacementsDictionary.Add("$patchexamplescontent$", patchExamplesContent); } catch (Exception ex) { String destinationDirectory = replacementsDictionary["$destinationdirectory$"]; if (Directory.Exists(destinationDirectory)) { Directory.Delete(destinationDirectory, true); try { Directory.GetParent(destinationDirectory).Delete(); } catch {} } Console.WriteLine(ex); throw ex; } }