public void WizardEvent(WizardEventArgs WizardEventArgs) { if (WizardEventArgs.EventType == EventType.Init) { AddAPIModelWizard = ((AddAPIModelWizard)WizardEventArgs.Wizard); App.ObjFieldBinding(XMLTemplatesGrid.AddCheckBox("Avoid Duplicates Nodes", null), CheckBox.IsCheckedProperty, AddAPIModelWizard, nameof(AddAPIModelWizard.AvoidDuplicatesNodes)); mWSDLParser = new WSDLParser(); AddAPIModelWizard.mWSDLParser = mWSDLParser; GingerCore.General.ObjFieldBinding(xURLTextBox, TextBox.TextProperty, AddAPIModelWizard, nameof(AddAPIModelWizard.URL)); xURLTextBox.AddValidationRule(eValidationRule.CannotBeEmpty); } else if (WizardEventArgs.EventType == EventType.LeavingForNextPage) { if (APITypeComboBox.SelectedValue.ToString() == eAPIType.WSDL.ToString()) { AddAPIModelWizard.APIType = eAPIType.WSDL; AddAPIModelWizard.mWSDLParser = mWSDLParser; } else if (APITypeComboBox.SelectedValue.ToString() == eAPIType.XMLTemplates.ToString()) { AddAPIModelWizard.APIType = eAPIType.XMLTemplates; ValidateXMLTemplatesInputs(WizardEventArgs); } else if (APITypeComboBox.SelectedValue.ToString() == eAPIType.JsonTemplate.ToString()) { AddAPIModelWizard.APIType = eAPIType.JsonTemplate; } else if (APITypeComboBox.SelectedValue.ToString() == eAPIType.Swagger.ToString()) { AddAPIModelWizard.APIType = eAPIType.Swagger; } } }
public void WizardEvent(WizardEventArgs WizardEventArgs) { if (WizardEventArgs.EventType == EventType.Init) { AddAPIModelWizard = ((AddAPIModelWizard)WizardEventArgs.Wizard); mWSDLParser = new WSDLParser(); //AddAPIModelWizard.FinishEnabled = false; //AddAPIModelWizard.NextEnabled = false; } else if (WizardEventArgs.EventType == EventType.LeavingForNextPage) { if (APITypeComboBox.SelectedValue.ToString() == eAPIType.WSDL.ToString()) { AddAPIModelWizard.APIType = eAPIType.WSDL; AddAPIModelWizard.mWSDLParser = mWSDLParser; //mWSDLParser.ValidateWSDLInputs(URLTextBox.Text,URLRadioButton.IsChecked, WizardEventArgs); } else if (APITypeComboBox.SelectedValue.ToString() == eAPIType.XMLTemplates.ToString()) { AddAPIModelWizard.APIType = eAPIType.XMLTemplates; ValidateXMLTemplatesInputs(WizardEventArgs); } else if (APITypeComboBox.SelectedValue.ToString() == eAPIType.JsonTemplate.ToString()) { AddAPIModelWizard.APIType = eAPIType.JsonTemplate; } } //else if (WizardEventArgs.EventType == EventType.Active) //{ // AddAPIModelWizard.NextEnabled = true; // AddAPIModelWizard.FinishEnabled = false; // AddAPIModelWizard.PrevEnabled = false; //} }
/// <summary> /// Loads the a WSDL for the selected web service, and modifies the /// webservices method and parameter objects to add in additional information /// about the service (parameter types and method namespace). If a WSDL fails to /// load, the service is removed from the library. /// </summary> /// <param name="service">The service to load the WSDL for.</param> /// <returns>Bool if load successful, false otherwise.</returns> private async Task <bool> LoadWSDLAsync(WebService service) { bool loadSuccess = false; try { // Genereate xml document XmlDocument wsdlXml = await SOAPWebService.GetWSDLAsync(service.Url); // Apply WSDL information to our library of configured methods WSDLParser wsdlParser = new WSDLParser(wsdlXml); WSDLInformation wsdlInfo = wsdlParser.BuildWSDLInformation(); MergeWithWSDL(wsdlInfo); loadSuccess = true; } catch (Exception ex) when(ex is WSDLNodeNotFoundException || ex is HttpRequestException || ex is XmlException) { Logger.Log(ex); List <WebService> serviceList = _services.ToList(); serviceList.Remove(service); _services = serviceList.ToArray(); } return(loadSuccess); }
public void WizardEvent(WizardEventArgs WizardEventArgs) { if (WizardEventArgs.EventType == EventType.Init) { xApisSelectionGrid.ValidationRules.Add(Ginger.ucGrid.eUcGridValidationRules.CantBeEmpty); AddAPIModelWizard = ((AddAPIModelWizard)WizardEventArgs.Wizard); WSDLP = AddAPIModelWizard.mWSDLParser; } else if (WizardEventArgs.EventType == EventType.Prev) { if (AddAPIModelWizard.APIType == AddAPIModelWizard.eAPIType.WSDL) { PrevURL = AddAPIModelWizard.URL; WSDLP.mStopParsing = true; } } else if (WizardEventArgs.EventType == EventType.Cancel) { if (WSDLP != null && AddAPIModelWizard != null) { WSDLP.mStopParsing = true; } } else if (WizardEventArgs.EventType == EventType.Active) { if (WizardEventArgs != null) { Parse(); } } }
consultarServicoWeb() { try { this.Cursor = Cursors.WaitCursor; XmlTextReader reader = new XmlTextReader(cboURL.Text); ServiceDescription service = ServiceDescription.Read(reader, false); WSDLParser parser = new WSDLParser(service); this.tvwService.Nodes.Add(parser.ServiceNode); this.cboURL.Items.Add(cboURL.Text); //http://soap.amazon.com/schemas2/AmazonWebServices.wsdl //http://glkev.webs.innerhost.com/glkev_ws/weatherfetcher.asmx?wsdl } catch (Exception e) { MessageBox.Show("Call to the Structural Validation Service " + " invalid WSDL Document "); } finally { this.Cursor = Cursors.Default; } }
public void GenerateAPIfromWSDL() { // Arrange string filename = TestResources.GetTestResourcesFile(@"APIModel\globalweather.xml"); WSDLParser WSDLP = new WSDLParser(); //Act ObservableList <ApplicationAPIModel> AAMList = new ObservableList <ApplicationAPIModel>(); AAMList = WSDLP.ParseDocument(filename, AAMList); //Assert Assert.AreEqual(AAMList.Count, 4, "Objects count"); //Assert.AreEqual(AAMList[0].GroupName, "GlobalWeatherSoap", "binding name"); Assert.AreEqual(AAMList[0].Name, "GetWeather_GlobalWeatherSoap", "operation name"); Assert.AreEqual(AAMList[0].RequestBody.Length, 439, "operation name"); //Assert.AreEqual(AAMList[1].GroupName, "GlobalWeatherSoap", "binding name"); Assert.AreEqual(AAMList[1].Name, "GetCitiesByCountry_GlobalWeatherSoap", "operation name"); Assert.AreEqual(AAMList[1].RequestBody.Length, 357, "operation name"); //Assert.AreEqual(AAMList[2].GroupName, "GlobalWeatherSoap12", "binding name"); Assert.AreEqual(AAMList[2].Name, "GetWeather_GlobalWeatherSoap12", "operation name"); //Assert.AreEqual(AAMList[3].GroupName, "GlobalWeatherSoap12", "binding name"); Assert.AreEqual(AAMList[3].Name, "GetCitiesByCountry_GlobalWeatherSoap12", "operation name"); //Assert.AreEqual(AAMList[4].GroupName, "GlobalWeatherHttpGet", "binding name"); //Assert.AreEqual(AAMList[4].Name, "GlobalWeatherHttpGet_GetWeather", "operation name"); //Assert.AreEqual(AAMList[5].GroupName, "GlobalWeatherHttpGet", "binding name"); //Assert.AreEqual(AAMList[5].Name, "GlobalWeatherHttpGet_GetCitiesByCountry", "operation name"); //Assert.AreEqual(AAMList[6].GroupName, "GlobalWeatherHttpPost", "binding name"); //Assert.AreEqual(AAMList[6].Name, "GlobalWeatherHttpPost_GetWeather", "operation name"); //Assert.AreEqual(AAMList[7].GroupName, "GlobalWeatherHttpPost", "binding name"); //Assert.AreEqual(AAMList[7].Name, "GlobalWeatherHttpPost_GetCitiesByCountry", "operation name"); foreach (ApplicationAPIModel AAM in AAMList) { if ((AAMList.IndexOf(AAM) % 2) == 0) { Assert.AreEqual(AAM.AppModelParameters.Count, 2, "Dynamic Parameters count"); Assert.AreEqual(AAM.Description, "Get weather report for all major cities around the world.", "Description check"); Assert.AreEqual(AAM.RequestBody.Length, 439, "Request Body Length Check"); } else { Assert.AreEqual(AAM.AppModelParameters.Count, 1, "Dynamic Parameters count"); Assert.AreEqual(AAM.Description, "Get all major cities by country name(full / part).", "Description check"); Assert.AreEqual(AAM.RequestBody.Length, 357, "Request Body Length Check"); } //Assert.AreEqual(AAM.APIModelKeyValueHeaders.Count, 8, "KeyValueHeaders count"); Assert.AreEqual(AAM.EndpointURL, "http://www.webservicex.net/globalweather.asmx", "KeyValueHeaders count"); } }
private async void Parse() { if (!AddAPIModelWizard.IsParsingWasDone) { xCompareBtnRow.Height = new GridLength(0); if (AddAPIModelWizard.DeltaModelsList != null) { xApisSelectionGrid.DataSourceList = AddAPIModelWizard.LearnedAPIModelsList; xApisSelectionGrid.ChangeGridView(eAddAPIWizardViewStyle.Add.ToString()); xApisSelectionGrid.btnMarkAll.Visibility = Visibility.Visible; } bool parseSuccess = false; if (AddAPIModelWizard.LearnedAPIModelsList != null) { AddAPIModelWizard.LearnedAPIModelsList.Clear(); } if (AddAPIModelWizard.APIType == AddAPIModelWizard.eAPIType.WSDL) { WSDLP = AddAPIModelWizard.mWSDLParser; bool ParsingStoped = false; if (WSDLP.mStopParsing) { ParsingStoped = true; } WSDLP.mStopParsing = false; if (PrevURL != AddAPIModelWizard.URL || ParsingStoped) { parseSuccess = await ShowWSDLOperations(); } else { parseSuccess = true; } } else if (AddAPIModelWizard.APIType == AddAPIModelWizard.eAPIType.XMLTemplates) { parseSuccess = await ShowXMLTemplatesOperations(); } else if (AddAPIModelWizard.APIType == AddAPIModelWizard.eAPIType.JsonTemplate) { parseSuccess = await ShowJsonTemplatesOperations(); } else if (AddAPIModelWizard.APIType == AddAPIModelWizard.eAPIType.Swagger) { parseSuccess = await ShowSwaggerOperations(); } AddAPIModelWizard.IsParsingWasDone = parseSuccess; xCompareBtnRow.Height = new GridLength(50); } }
private async void Parse() { if (!AddAPIModelWizard.IsParsingWasDone) { bool parseSuccess = false; if (AddAPIModelWizard.AAMList != null) { AddAPIModelWizard.AAMList.Clear(); } if (AddAPIModelWizard.APIType == AddAPIModelWizard.eAPIType.WSDL) { WSDLP = AddAPIModelWizard.mWSDLParser; bool ParsingStoped = false; if (WSDLP.mStopParsing) { ParsingStoped = true; } WSDLP.mStopParsing = false; if (PrevURL != AddAPIModelWizard.URL || ParsingStoped) { parseSuccess = await ShowWSDLOperations(); } else { parseSuccess = true; } } else if (AddAPIModelWizard.APIType == AddAPIModelWizard.eAPIType.XMLTemplates) { parseSuccess = await ShowXMLTemplatesOperations(); } else if (AddAPIModelWizard.APIType == AddAPIModelWizard.eAPIType.JsonTemplate) { parseSuccess = await ShowJsonTemplatesOperations(); } else if (AddAPIModelWizard.APIType == AddAPIModelWizard.eAPIType.Swagger) { parseSuccess = await ShowSwaggerOperations(); } AddAPIModelWizard.IsParsingWasDone = parseSuccess; //if (parseSuccess) // AddAPIModelWizard.NextEnabled = true; } //else //{ // // AddAPIModelWizard.NextEnabled = true; //} }
private bool LoadWSDLFileValidation(bool bShowMessage = true) { AddAPIModelWizard.ProcessStarted(); xBrowseLoadButton.IsEnabled = false; string error = string.Empty; mWSDLParser = new WSDLParser(); try { if (!mWSDLParser.ValidateWSDLURL(xURLTextBox.Text, URLRadioButton.IsChecked, ref error)) { throw new Exception(error); } XmlDocument doc = null; string s = xURLTextBox.Text; doc = GetDocumentFromWeb(s); PreviewContent = doc; xPreviewButton.Visibility = Visibility.Visible; } catch (Exception ex) { if (bShowMessage) { Reporter.ToUser(eUserMsgKey.FileOperationError, ex.Message); } error = error + Environment.NewLine + ex.Message; xPreviewButton.Visibility = Visibility.Collapsed; SourceRviewLable.Visibility = Visibility.Collapsed; XMLViewer.Visibility = Visibility.Collapsed; return(false); } finally { AddAPIModelWizard.ProcessEnded(); xBrowseLoadButton.IsEnabled = true; } if (string.IsNullOrEmpty(error)) { if (bShowMessage) { Reporter.ToUser(eUserMsgKey.StaticInfoMessage, "Success : The File Loaded successfully"); } return(true); } return(false); }
private void güncelleToolStripMenuItem_Click(object sender, EventArgs e) { if (treeView1.SelectedNode != null && treeView1.SelectedNode.Tag != null) { WebServices proj = treeView1.SelectedNode.Tag as WebServices; if (Utility.Sor("Proje güncellenecek onaylıyor musunuz?")) { this.Cursor = Cursors.WaitCursor; WSDLParser parser = new WSDLParser(proj); parser.Parse(); this.Cursor = Cursors.Default; } } }
private async void LoadFileValidation() { AddAPIModelWizard.ProcessStarted(); xBrowseLoadButton.IsEnabled = false; string error = string.Empty; mWSDLParser = new WSDLParser(); try { if (!mWSDLParser.ValidateWSDLURL(xURLTextBox.Text, URLRadioButton.IsChecked, ref error)) { throw new Exception(error); } XmlDocument doc = null; string s = xURLTextBox.Text; await Task.Run(() => doc = GetDocumentFromWeb(s)); PreviewContent = doc; xPreviewButton.Visibility = Visibility.Visible; // AddAPIModelWizard.NextEnabled = true; } catch (Exception ex) { System.Windows.MessageBox.Show("Error Details:" + Environment.NewLine + ex.Message, "General Error Occurred", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error, System.Windows.MessageBoxResult.None); error = error + Environment.NewLine + ex.Message; xPreviewButton.Visibility = Visibility.Collapsed; SourceRviewLable.Visibility = Visibility.Collapsed; XMLViewer.Visibility = Visibility.Collapsed; // AddAPIModelWizard.NextEnabled = false; } finally { AddAPIModelWizard.ProcessEnded(); xBrowseLoadButton.IsEnabled = true; } if (string.IsNullOrEmpty(error)) { System.Windows.MessageBox.Show("The File Loaded successfully", "Success", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Information, System.Windows.MessageBoxResult.None); } }
public void APILearnWSDLStockSimbolTest() { //Arrange WSDLParser wsdlParser = new WSDLParser(); ObservableList <ApplicationAPIModel> AAMSList = new ObservableList <ApplicationAPIModel>(); //Act Learn(AAMSList, wsdlParser); while (AAMSList.Count < 6) { //Let it learn } //Assert Assert.AreEqual(AAMSList.Count, 6, "Is API's equal to 6"); Assert.AreEqual(AAMSList[0].EndpointURL, "http://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx", "Is EndpointURL equal"); Assert.AreEqual(AAMSList[0].SOAPAction, "http://ws.cdyne.com/GetQuote", "Is SOAPAction equal"); Assert.AreEqual(String.IsNullOrEmpty(AAMSList[0].RequestBody), false, "Is body not empty equal"); Assert.AreEqual(AAMSList[0].AppModelParameters.Count, 2, "are parameters are equal"); Assert.AreEqual(AAMSList[0].AppModelParameters[0].PlaceHolder, "{STOCKSYMBOL}", "Is parameter name equal"); Assert.AreEqual(AAMSList[0].AppModelParameters[1].PlaceHolder, "{LICENSEKEY}", "Is parameter name equal"); }
public void WizardEvent(WizardEventArgs WizardEventArgs) { if (WizardEventArgs.EventType == EventType.Init) { AddAPIModelWizard = ((AddAPIModelWizard)WizardEventArgs.Wizard); App.ObjFieldBinding(XMLTemplatesGrid.AddCheckBox("Avoid Duplicates Nodes", null), CheckBox.IsCheckedProperty, AddAPIModelWizard, nameof(AddAPIModelWizard.AvoidDuplicatesNodes)); mWSDLParser = new WSDLParser(); GingerCore.General.ObjFieldBinding(xURLTextBox, TextBox.TextProperty, AddAPIModelWizard, nameof(AddAPIModelWizard.URL)); xURLTextBox.AddValidationRule(eValidationRule.CannotBeEmpty); } else if (WizardEventArgs.EventType == EventType.LeavingForNextPage) { if (APITypeComboBox.SelectedValue.ToString() == eAPIType.WSDL.ToString()) { AddAPIModelWizard.APIType = eAPIType.WSDL; AddAPIModelWizard.mWSDLParser = mWSDLParser; //mWSDLParser.ValidateWSDLInputs(URLTextBox.Text,URLRadioButton.IsChecked, WizardEventArgs); } else if (APITypeComboBox.SelectedValue.ToString() == eAPIType.XMLTemplates.ToString()) { AddAPIModelWizard.APIType = eAPIType.XMLTemplates; ValidateXMLTemplatesInputs(WizardEventArgs); } else if (APITypeComboBox.SelectedValue.ToString() == eAPIType.JsonTemplate.ToString()) { AddAPIModelWizard.APIType = eAPIType.JsonTemplate; } } //else if (WizardEventArgs.EventType == EventType.Active) //{ // AddAPIModelWizard.NextEnabled = true; // AddAPIModelWizard.FinishEnabled = false; // AddAPIModelWizard.PrevEnabled = false; //} }
public void WizardEvent(WizardEventArgs WizardEventArgs) { if (WizardEventArgs.EventType == EventType.Init) { AddAPIModelWizard = ((AddAPIModelWizard)WizardEventArgs.Wizard); GingerCore.GeneralLib.BindingHandler.ObjFieldBinding(XMLTemplatesGrid.AddCheckBox("Avoid Duplicates Nodes", null), CheckBox.IsCheckedProperty, AddAPIModelWizard, nameof(AddAPIModelWizard.AvoidDuplicatesNodes)); mWSDLParser = new WSDLParser(); AddAPIModelWizard.mWSDLParser = mWSDLParser; GingerCore.GeneralLib.BindingHandler.ObjFieldBinding(xURLTextBox, TextBox.TextProperty, AddAPIModelWizard, nameof(AddAPIModelWizard.URL)); xURLTextBox.AddValidationRule(eValidationRule.CannotBeEmpty); } else if (WizardEventArgs.EventType == EventType.LeavingForNextPage) { if (APITypeComboBox.SelectedValue.ToString() == eAPIType.WSDL.ToString()) { AddAPIModelWizard.APIType = eAPIType.WSDL; WizardEventArgs.CancelEvent = true; if (!string.IsNullOrWhiteSpace(xURLTextBox.Text)) { if (ValidateFile(xURLTextBox.Text)) { WizardEventArgs.CancelEvent = false; AddAPIModelWizard.mWSDLParser = mWSDLParser; } } } else if (APITypeComboBox.SelectedValue.ToString() == eAPIType.XMLTemplates.ToString()) { AddAPIModelWizard.APIType = eAPIType.XMLTemplates; WizardEventArgs.CancelEvent = true; if (!string.IsNullOrWhiteSpace(xURLTextBox.Text)) { if (ValidateFile(xURLTextBox.Text)) { WizardEventArgs.CancelEvent = false; } } else if (XMLTemplatesGrid.DataSourceList != null && XMLTemplatesGrid.DataSourceList.Count > 0) { for (int i = 0; i < XMLTemplatesGrid.DataSourceList.Count; i++) { if (ValidateFile(((TemplateFile)XMLTemplatesGrid.DataSourceList[i]).FilePath)) { WizardEventArgs.CancelEvent = false; } else { WizardEventArgs.CancelEvent = true; break; } } } } else if (APITypeComboBox.SelectedValue.ToString() == eAPIType.JsonTemplate.ToString()) { AddAPIModelWizard.APIType = eAPIType.JsonTemplate; WizardEventArgs.CancelEvent = true; if (!string.IsNullOrWhiteSpace(xURLTextBox.Text)) { if (ValidateFile(xURLTextBox.Text)) { WizardEventArgs.CancelEvent = false; } } else if (XMLTemplatesGrid.DataSourceList != null && XMLTemplatesGrid.DataSourceList.Count > 0) { for (int i = 0; i < XMLTemplatesGrid.DataSourceList.Count; i++) { if (ValidateFile(((TemplateFile)XMLTemplatesGrid.DataSourceList[i]).FilePath)) { WizardEventArgs.CancelEvent = false; } else { WizardEventArgs.CancelEvent = true; break; } } } } else if (APITypeComboBox.SelectedValue.ToString() == eAPIType.Swagger.ToString()) { AddAPIModelWizard.APIType = eAPIType.Swagger; WizardEventArgs.CancelEvent = true; if (!string.IsNullOrWhiteSpace(xURLTextBox.Text)) { if (ValidateFile(xURLTextBox.Text)) { WizardEventArgs.CancelEvent = false; } } } } }
private async void Learn(ObservableList <ApplicationAPIModel> AAMSList, WSDLParser wsdlParser) { string path = TestResources.GetTestResourcesFile(@"AutoPilot\WSDLs\delayedstockquote.xml"); await Task.Run(() => wsdlParser.ParseDocument(path, AAMSList)); }
public void WizardEvent(WizardEventArgs WizardEventArgs) { if (WizardEventArgs.EventType == EventType.Init) { xApisSelectionGrid.ValidationRules.Add(Ginger.ucGrid.eUcGridValidationRules.CantBeEmpty); AddAPIModelWizard = ((AddAPIModelWizard)WizardEventArgs.Wizard); WSDLP = AddAPIModelWizard.mWSDLParser; } else if (WizardEventArgs.EventType == EventType.Prev) { if (AddAPIModelWizard.APIType == AddAPIModelWizard.eAPIType.WSDL) { PrevURL = AddAPIModelWizard.URL; WSDLP.mStopParsing = true; } } else if (WizardEventArgs.EventType == EventType.Cancel) { if (WSDLP != null && AddAPIModelWizard != null) { WSDLP.mStopParsing = true; } } else if (WizardEventArgs.EventType == EventType.Active) { if (WizardEventArgs != null) { Parse(); } } else if (WizardEventArgs.EventType == EventType.LeavingForNextPage) { if (AddAPIModelWizard.DeltaModelsList != null && AddAPIModelWizard.DeltaModelsList.Count > 0) { bool mergeIssue = false; bool notifyReplaceAPI = false; AddAPIModelWizard.LearnedAPIModelsList.Clear(); foreach (DeltaAPIModel deltaModel in AddAPIModelWizard.DeltaModelsList.Where(m => m.IsSelected == true)) { ApplicationAPIModel selectedAPIModel = null; if (deltaModel.SelectedOperationEnum == DeltaAPIModel.eHandlingOperations.Add) { selectedAPIModel = deltaModel.learnedAPI; } else if (deltaModel.SelectedOperationEnum == DeltaAPIModel.eHandlingOperations.MergeChanges) { if (deltaModel.MergedAPIModel == null) { mergeIssue = true; break; } else { deltaModel.MergedAPIModel.ContainingFolder = deltaModel.matchingAPIModel.ContainingFolderFullPath; selectedAPIModel = deltaModel.MergedAPIModel; notifyReplaceAPI = true; } } else if (deltaModel.SelectedOperationEnum == DeltaAPIModel.eHandlingOperations.ReplaceExisting) { deltaModel.learnedAPI.ContainingFolder = deltaModel.matchingAPIModel.ContainingFolderFullPath; selectedAPIModel = deltaModel.learnedAPI; notifyReplaceAPI = true; } if (selectedAPIModel != null) { AddAPIModelWizard.LearnedAPIModelsList.Add(selectedAPIModel); } } if (mergeIssue) { Reporter.ToUser(eUserMsgKey.BaseAPIWarning, "Please configure Merged API on Compare and Merge window."); WizardEventArgs.CancelEvent = true; return; } if (notifyReplaceAPI && Reporter.ToUser(eUserMsgKey.SureWantToContinue, "API Models", "API Models", eUserMsgOption.YesNo) == eUserMsgSelection.No) { WizardEventArgs.CancelEvent = true; return; } } } }
public void WizardEvent(WizardEventArgs WizardEventArgs) { if (WizardEventArgs.EventType == EventType.Init) { xApisSelectionGrid.ValidationRules.Add(Ginger.ucGrid.eUcGridValidationRules.CantBeEmpty); AddAPIModelWizard = ((AddAPIModelWizard)WizardEventArgs.Wizard); WSDLP = AddAPIModelWizard.mWSDLParser; } else if (WizardEventArgs.EventType == EventType.Prev) { if (AddAPIModelWizard.APIType == AddAPIModelWizard.eAPIType.WSDL) { PrevURL = AddAPIModelWizard.URL; WSDLP.mStopParsing = true; } } else if (WizardEventArgs.EventType == EventType.Cancel) { if (WSDLP != null && AddAPIModelWizard != null) { WSDLP.mStopParsing = true; } } else if (WizardEventArgs.EventType == EventType.Active) { if (WizardEventArgs != null) { Parse(); } } else if (WizardEventArgs.EventType == EventType.LeavingForNextPage) { if (AddAPIModelWizard.DeltaModelsList != null && AddAPIModelWizard.DeltaModelsList.Count > 0) { bool mergeIssue = false; bool notifyReplaceAPI = false; AddAPIModelWizard.LearnedAPIModelsList.Clear(); List <DeltaAPIModel> repeatingMatchingModels = AddAPIModelWizard.DeltaModelsList.Where(m => m.SelectedOperationEnum == DeltaAPIModel.eHandlingOperations.ReplaceExisting || m.SelectedOperationEnum == DeltaAPIModel.eHandlingOperations.MergeChanges) .GroupBy(m => m.matchingAPIModel).SelectMany(m => m.Skip(1)).ToList(); bool matchingModelsReplacementIssue = repeatingMatchingModels.Count() != 0; int apiCount = 0; if (matchingModelsReplacementIssue) { System.Text.StringBuilder issueMsg = new System.Text.StringBuilder(Environment.NewLine + Environment.NewLine); foreach (DeltaAPIModel deltaMod in repeatingMatchingModels) { apiCount++; issueMsg.Append(apiCount + "). " + deltaMod.MatchingAPIName + Environment.NewLine); } Reporter.ToUser(eUserMsgKey.MultipleMatchingAPI, "Below Matching API Models selected to be replaced/overwritten multiple times:" + issueMsg.ToString()); WizardEventArgs.CancelEvent = true; return; } foreach (DeltaAPIModel deltaModel in AddAPIModelWizard.DeltaModelsList.Where(m => m.IsSelected == true)) { ApplicationAPIModel selectedAPIModel = null; if (deltaModel.SelectedOperationEnum == DeltaAPIModel.eHandlingOperations.Add) { selectedAPIModel = deltaModel.learnedAPI; } else if (deltaModel.SelectedOperationEnum == DeltaAPIModel.eHandlingOperations.MergeChanges) { if (deltaModel.MergedAPIModel == null) { mergeIssue = true; break; } else { deltaModel.MergedAPIModel.ContainingFolder = deltaModel.matchingAPIModel.ContainingFolderFullPath; selectedAPIModel = deltaModel.MergedAPIModel; notifyReplaceAPI = true; } } else if (deltaModel.SelectedOperationEnum == DeltaAPIModel.eHandlingOperations.ReplaceExisting) { deltaModel.learnedAPI.ContainingFolder = deltaModel.matchingAPIModel.ContainingFolderFullPath; selectedAPIModel = deltaModel.learnedAPI; notifyReplaceAPI = true; } if (selectedAPIModel != null) { AddAPIModelWizard.LearnedAPIModelsList.Add(selectedAPIModel); } } if (mergeIssue) { Reporter.ToUser(eUserMsgKey.BaseAPIWarning, "Please configure Merged API on Compare and Merge window."); WizardEventArgs.CancelEvent = true; return; } if (notifyReplaceAPI && Reporter.ToUser(eUserMsgKey.SureWantToContinue, "API Models", "API Models", eUserMsgOption.YesNo) == eUserMsgSelection.No) { WizardEventArgs.CancelEvent = true; return; } } } }