Пример #1
0
 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;
     //}
 }
Пример #3
0
        /// <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);
        }
Пример #4
0
 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();
         }
     }
 }
Пример #5
0
    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);
        }
Пример #10
0
        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);
            }
        }
Пример #12
0
        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;
                 }
             }
         }
     }
 }
Пример #15
0
 private async void Learn(ObservableList <ApplicationAPIModel> AAMSList, WSDLParser wsdlParser)
 {
     string path = TestResources.GetTestResourcesFile(@"AutoPilot\WSDLs\delayedstockquote.xml");
     await Task.Run(() => wsdlParser.ParseDocument(path, AAMSList));
 }
Пример #16
0
        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;
                    }
                }
            }
        }