public void RunStarted(object automationObject, Dictionary <string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams) { userProviderItemName = replacementsDictionary["$safeitemname$"]; if (runKind == WizardRunKind.AsNewItem) { string wizardData = replacementsDictionary["$wizarddata$"]; XElement element = XElement.Parse("<WizardData>" + wizardData + "</WizardData>"); var nativeTypeElement = element .Descendants().FirstOrDefault(x => x.Name.LocalName.EqualsIgnoreCase("NativeType")); if (nativeTypeElement == null) { return; } var nativeTypeName = nativeTypeElement.Value; var typesHandler = NativeTypesHandlers.Where(x => x.Key.EqualsIgnoreCase(nativeTypeName)).Select(x => x.Value).FirstOrDefault(); if (typesHandler == null) { throw new WizardBackoutException("Unable to find associated INativeTypesHandler from '" + nativeTypeName + "'"); } currentNativeTypesHandle = typesHandler; var dialog = new AddServiceStackReference(userProviderItemName, currentNativeTypesHandle); dialog.ShowDialog(); if (!dialog.AddReferenceSucceeded) { throw new WizardBackoutException("Cancelled"); } finalUserProvidedName = dialog.FileNameTextBox.Text; replacementsDictionary.Add("$basereferenceurl$", dialog.ServerUrl.Replace(typesHandler.RelativeTypesUrl, string.Empty)); } else { throw new WizardBackoutException("Invalid template runkind. Expecting 'WizardRunKind.AsNewItem'"); } }
private void AddServiceStackReference(string folderPath, INativeTypesHandler typesHandler) { int fileNameNumber = 1; //Find a version of the default name that doesn't already exist, //mimicing VS default file name behaviour. while (File.Exists(Path.Combine(folderPath, "ServiceReference" + fileNameNumber + typesHandler.CodeFileExtension))) { fileNameNumber++; } var dialog = new AddServiceStackReference("ServiceReference" + fileNameNumber, typesHandler); dialog.ShowDialog(); if (!dialog.AddReferenceSucceeded) { return; } string templateCode = dialog.CodeTemplate; AddNewDtoFileToProject(dialog.FileNameTextBox.Text + typesHandler.CodeFileExtension, templateCode, typesHandler.RequiredNuGetPackages); }
public void RunStarted(object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams) { userProviderItemName = replacementsDictionary["$safeitemname$"]; if (runKind == WizardRunKind.AsNewItem) { string wizardData = replacementsDictionary["$wizarddata$"]; XElement element = XElement.Parse("<WizardData>" + wizardData + "</WizardData>"); var nativeTypeElement = element .Descendants().FirstOrDefault(x => x.Name.LocalName.EqualsIgnoreCase("NativeType")); if (nativeTypeElement == null) return; var nativeTypeName = nativeTypeElement.Value; var typesHandler = NativeTypesHandlers.Where(x => x.Key.EqualsIgnoreCase(nativeTypeName)).Select(x => x.Value).FirstOrDefault(); if (typesHandler == null) { throw new WizardBackoutException("Unable to find associated INativeTypesHandler from '" + nativeTypeName + "'"); } currentNativeTypesHandle = typesHandler; var dialog = new AddServiceStackReference(userProviderItemName, currentNativeTypesHandle); dialog.ShowDialog(); if (!dialog.AddReferenceSucceeded) { throw new WizardBackoutException("Cancelled"); } finalUserProvidedName = dialog.FileNameTextBox.Text; replacementsDictionary.Add("$basereferenceurl$", dialog.ServerUrl.Replace(typesHandler.RelativeTypesUrl,string.Empty)); } else { throw new WizardBackoutException("Invalid template runkind. Expecting 'WizardRunKind.AsNewItem'"); } }