/// <summary>
        /// Update all parameters optional values according to xml file
        /// </summary>
        /// <param name="AAM"></param>
        /// <param name="OptionalValuesPerParameterDict"></param>
        public void PopulateXMLOptionalValuesForAPIParameters(ApplicationModelBase AAM, Dictionary <Tuple <string, string>, List <string> > OptionalValuesPerParameterDict)
        {
            foreach (AppModelParameter AMP in AAM.AppModelParameters)
            {
                string result = Regex.Match(AMP.Path, @"(.)*soapenv:Body\[1\]\/([a-zA-Z]|\d)*:").Value;
                if (string.IsNullOrEmpty(result))
                {
                    result = Regex.Match(AMP.Path, @"(.)*soapenv:Body\[1\]\/").Value;
                }

                string VAXBXPath = string.Empty;
                if (!string.IsNullOrEmpty(result))
                {
                    VAXBXPath = AMP.Path.Replace(result, "//*[name()='vaxb:VAXB']/vaxb:");
                }

                Tuple <string, string> tuple             = new Tuple <string, string>(AMP.TagName, AMP.Path);
                Tuple <string, string> relativePathTuple = new Tuple <string, string>(AMP.TagName, VAXBXPath);
                if (OptionalValuesPerParameterDict.ContainsKey(tuple))
                {
                    PopulateOptionalValuesByTuple(AMP, OptionalValuesPerParameterDict, tuple);
                }
                if (OptionalValuesPerParameterDict.ContainsKey(relativePathTuple))
                {
                    PopulateOptionalValuesByTuple(AMP, OptionalValuesPerParameterDict, relativePathTuple);
                }
            }
        }
        /// <summary>
        /// Update optional values only for selected parameters  according to xml file
        /// </summary>
        /// <param name="AAM"></param>
        /// <param name="OptionalValuesPerParameterDict"></param>
        /// <param name="SelectedParametersGridList"></param>
        public void PopulateXMLOptionalValuesForAPIParameters(ApplicationModelBase AAM, Dictionary <Tuple <string, string>, List <string> > OptionalValuesPerParameterDict, List <AppModelParameter> SelectedParametersGridList)
        {
            foreach (var tuple in SelectedParametersGridList.Zip(AAM.AppModelParameters, (x, y) => (x, y)))
            {
                if (tuple.x.RequiredAsInput)//selected
                {
                    string result = Regex.Match(tuple.y.Path, @"(.)*soapenv:Body\[1\]\/([a-zA-Z]|\d)*:").Value;
                    if (string.IsNullOrEmpty(result))
                    {
                        result = Regex.Match(tuple.y.Path, @"(.)*soapenv:Body\[1\]\/").Value;
                    }

                    string VAXBXPath = string.Empty;
                    if (!string.IsNullOrEmpty(result))
                    {
                        VAXBXPath = tuple.y.Path.Replace(result, "//*[name()='vaxb:VAXB']/vaxb:");
                    }

                    Tuple <string, string> tupleKey          = new Tuple <string, string>(tuple.y.TagName, tuple.y.Path);
                    Tuple <string, string> relativePathTuple = new Tuple <string, string>(tuple.y.TagName, VAXBXPath);
                    if (OptionalValuesPerParameterDict.ContainsKey(tupleKey))
                    {
                        PopulateOptionalValuesByTuple(tuple.y, OptionalValuesPerParameterDict, tupleKey);
                    }
                    if (OptionalValuesPerParameterDict.ContainsKey(relativePathTuple))
                    {
                        PopulateOptionalValuesByTuple(tuple.y, OptionalValuesPerParameterDict, relativePathTuple);
                    }
                }
            }
        }
예제 #3
0
        private List <FindItemType> GetApplicationModels()
        {
            ObservableList <ApplicationModelBase> ApplicationModels = new ObservableList <ApplicationModelBase>();
            List <FindItemType> APMsSubItemList = new List <FindItemType>();


            AppDomain.CurrentDomain.Load("GingerCoreCommon");

            var ApplicationModelTypes =
                // from assembly in AppDomain.CurrentDomain.GetAssemblies()
                from type in typeof(ApplicationModelBase).Assembly.GetTypes()
                where type.IsSubclassOf(typeof(ApplicationModelBase))
                select type;

            foreach (Type t in ApplicationModelTypes)
            {
                ApplicationModelBase a = (ApplicationModelBase)Activator.CreateInstance(t);
                ApplicationModels.Add(a);
            }

            foreach (ApplicationModelBase a in ApplicationModels)
            {
                if (!string.IsNullOrEmpty(a.ObjFolderName))
                {
                    APMsSubItemList.Add(new FindItemType {
                        Name = a.ObjFolderName, Type = a.GetType()
                    });
                }
            }

            return(APMsSubItemList);
        }
예제 #4
0
 public AddModelOptionalValuesWizard(ApplicationModelBase AAMB)//Local Parameters
 {
     mAAMB = AAMB;
     ImportOptionalValues.ParameterType = ImportOptionalValuesForParameters.eParameterType.Local;
     AddPage(Name: "Select Document", Title: "Import Source", SubTitle: "Select And Import Source For Optional Values", Page: new AddOptionalValuesModelSelectTypePage(eOptionalValuesTargetType.ModelLocalParams));
     AddPage(Name: "Select Parameters", Title: "Select Parameters", SubTitle: "Select Parameters For The Chosen Values", Page: new AddOptionalValuesModelSelectParamPage(eOptionalValuesTargetType.ModelLocalParams));
 }
예제 #5
0
 private void viewApplicationModel(ApplicationModelBase applicationModelToView)
 {
     if (applicationModelToView is ApplicationAPIModel)
     {
         ApplicationAPIModel applicationAPIModel = applicationModelToView as ApplicationAPIModel;
         APIModelPage        w = new APIModelPage(applicationAPIModel);
         w.ShowAsWindow(eWindowShowStyle.Free, true, APIModelPage.eEditMode.FindAndReplace);
     }
 }
        public ModelItemUsagePage(ApplicationModelBase modelItem, ApplicationModelBase.eModelUsageUpdateType usageUpdateType, ApplicationModelBase.eModelParts modelPart)
        {
            InitializeComponent();
            mModelItem       = modelItem;
            mUsageUpdateType = usageUpdateType;
            mModelPart       = modelPart;

            FindUsages();
            usageGrid.DataSourceList = ModelItemUsages;
            SetUsagesGridView();
        }
예제 #7
0
        public ModelParamsPage(ApplicationModelBase AAMB)
        {
            InitializeComponent();
            mApplicationModel  = AAMB;
            ParamsList         = AAMB.AppModelParameters;
            APIGlobalParamList = AAMB.GlobalAppModelParameters;
            InitModelParametersGrid();
            InitGlobalModelParametersGrid();

            mApplicationModel.AppModelParameters.CollectionChanged += LocalParameters_CollectionChanged;
            UpdateLocalParametersGridHeader();
            mApplicationModel.GlobalAppModelParameters.CollectionChanged += GloablParameters_CollectionChanged;
            UpdateGlobalParametersGridHeader();
        }
 private static void DeleteOldReturnValuesInAction(Act act, ApplicationModelBase apiModel)
 {
     for (int index = 0; index < act.ReturnValues.Count; index++)
     {
         if (act.ReturnValues[index].AddedAutomatically == true)
         {
             ActReturnValue apiARV = apiModel.ReturnValues.Where(x => x.Guid == act.ReturnValues[index].Guid).FirstOrDefault();
             if (apiARV == null) //Output value deleted from API - delete it also from action
             {
                 act.ReturnValues.RemoveAt(index);
                 index--;
             }
         }
     }
 }
예제 #9
0
        /// <summary>
        /// Apply Ws-Security Header
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ReplaceWSSecurityHeader_Click(object sender, RoutedEventArgs e)
        {
            string        txtBoxBodyContent   = RequestBodyTextBox.Text;
            List <string> SoapSecurityContent = ApplicationModelBase.GetSoapSecurityHeaderContent(ref txtBoxBodyContent);
            string        wsSecuritySettings  = SoapSecurityContent.ElementAt(0);

            RequestBodyTextBox.Text = txtBoxBodyContent;
            ActInputValue user = new ActInputValue();

            if (string.IsNullOrEmpty(txtBoxBodyContent))
            {
                return;
            }
            SetCredentialPlaceHolders(SoapSecurityContent);
        }
        private static void UpdateAllReturnValuesInAction(Act act, ApplicationModelBase apiModel, ModelItemUsage usage)
        {
            ActReturnValue.eItemParts ePartToUpdate = (ActReturnValue.eItemParts)Enum.Parse(typeof(ActReturnValue.eItemParts), usage.SelectedItemPart);
            foreach (ActReturnValue apiARV in apiModel.ReturnValues)
            {
                ActReturnValue actARV = act.ActReturnValues.Where(x => x.Guid == apiARV.Guid).FirstOrDefault();
                if (actARV != null) //Exist already in the action - Update it
                {
                    actARV.Active = apiARV.Active;
                    actARV.Status = ActReturnValue.eStatus.Pending;

                    if (ePartToUpdate == ActReturnValue.eItemParts.ExpectedValue || ePartToUpdate == ActReturnValue.eItemParts.All)
                    {
                        actARV.Expected = apiARV.Expected;
                    }
                    if (ePartToUpdate == ActReturnValue.eItemParts.Parameter || ePartToUpdate == ActReturnValue.eItemParts.All)
                    {
                        actARV.ItemName = apiARV.ItemName;
                    }
                    if (ePartToUpdate == ActReturnValue.eItemParts.Path || ePartToUpdate == ActReturnValue.eItemParts.All)
                    {
                        actARV.Path = apiARV.Path;
                    }
                    if (ePartToUpdate == ActReturnValue.eItemParts.SimulatedActual || ePartToUpdate == ActReturnValue.eItemParts.All)
                    {
                        actARV.SimulatedActual = apiARV.SimulatedActual;
                    }
                    if (ePartToUpdate == ActReturnValue.eItemParts.StoreTo || ePartToUpdate == ActReturnValue.eItemParts.All)
                    {
                        if (!string.IsNullOrEmpty(apiARV.StoreToValue))
                        {
                            actARV.StoreTo      = ActReturnValue.eStoreTo.ApplicationModelParameter;
                            actARV.StoreToValue = apiARV.StoreToValue;
                        }
                    }

                    usage.Status = ModelItemUsage.eStatus.Updated;
                }
                else //Not exist in the action - add it
                {
                    if (!string.IsNullOrEmpty(apiARV.StoreToValue))
                    {
                        apiARV.StoreTo = ActReturnValue.eStoreTo.ApplicationModelParameter;
                    }
                    AddNewActReturnValue(act, apiARV);
                }
            }
        }
        public ModelParamsPage(ApplicationModelBase AAMB, Ginger.General.eRIPageViewMode viewMode = Ginger.General.eRIPageViewMode.Standalone)
        {
            InitializeComponent();
            mApplicationModel  = AAMB;
            ParamsList         = AAMB.AppModelParameters;
            APIGlobalParamList = AAMB.GlobalAppModelParameters;

            mPageViewMode = viewMode;

            InitModelParametersGrid();
            InitGlobalModelParametersGrid();

            mApplicationModel.AppModelParameters.CollectionChanged += LocalParameters_CollectionChanged;
            UpdateLocalParametersGridHeader();
            mApplicationModel.GlobalAppModelParameters.CollectionChanged += GloablParameters_CollectionChanged;
            UpdateGlobalParametersGridHeader();
        }
예제 #12
0
        private void ViewApplicationModel(FoundItem applicationModelToViewFoundItem)
        {
            ApplicationModelBase applicationModelToView = (ApplicationModelBase)mCurrentItem.OriginObject;

            if (applicationModelToView is ApplicationAPIModel)
            {
                ApplicationAPIModel applicationAPIModel = applicationModelToView as ApplicationAPIModel;
                APIModelPage        w = new APIModelPage(applicationAPIModel);
                if (mContext == eContext.RunsetPage)
                {
                    w.ShowAsWindow(eWindowShowStyle.Free, true, APIModelPage.eEditMode.View);
                }
                else
                {
                    w.ShowAsWindow(eWindowShowStyle.Free, true, APIModelPage.eEditMode.FindAndReplace);
                }
            }
        }
        /// <summary>
        /// Update all parameters optional values according to json file
        /// </summary>
        /// <param name="AAM"></param>
        /// <param name="OptionalValuesPerParameterDict"></param>
        public void PopulateJSONOptionalValuesForAPIParameters(ApplicationModelBase AAM, Dictionary <Tuple <string, string>, List <string> > OptionalValuesPerParameterDict)
        {
            int UpdatedParametersCounter = 0;

            foreach (AppModelParameter AMP in AAM.AppModelParameters)
            {
                string result = AMP.Path;
                Tuple <string, string> tuple = new Tuple <string, string>(AMP.TagName, AMP.Path);
                if (OptionalValuesPerParameterDict.ContainsKey(tuple))
                {
                    PopulateOptionalValuesByTuple(AMP, OptionalValuesPerParameterDict, tuple);
                    if (APIConfigurationsDocumentParserBase.ParameterValuesUpdated)
                    {
                        UpdatedParametersCounter++;
                        APIConfigurationsDocumentParserBase.ParameterValuesUpdated = false;
                    }
                }
            }
        }
        /// <summary>
        /// Update optional values only for selected parameter according to json file
        /// </summary>
        /// <param name="AAM"></param>
        /// <param name="OptionalValuesPerParameterDict"></param>
        /// <param name="SelectedParametersGridList"></param>
        public void PopulateJSONOptionalValuesForAPIParameters(ApplicationModelBase AAM, Dictionary <Tuple <string, string>, List <string> > OptionalValuesPerParameterDict, List <AppModelParameter> SelectedParametersGridList)
        {
            int UpdatedParametersCounter = 0;

            foreach (var tuple in SelectedParametersGridList.Zip(AAM.AppModelParameters, (x, y) => (x, y)))
            {
                if (tuple.x.RequiredAsInput)//selected
                {
                    Tuple <string, string> tupleKey = new Tuple <string, string>(tuple.y.TagName, tuple.y.Path);
                    if (OptionalValuesPerParameterDict.ContainsKey(tupleKey))
                    {
                        PopulateOptionalValuesByTuple(tuple.y, OptionalValuesPerParameterDict, tupleKey);
                        if (APIConfigurationsDocumentParserBase.ParameterValuesUpdated)
                        {
                            UpdatedParametersCounter++;
                            APIConfigurationsDocumentParserBase.ParameterValuesUpdated = false;
                        }
                    }
                }
            }
        }
예제 #15
0
        public void RefreshGlobalAppModelParams(ApplicationModelBase AppModel)
        {
            ObservableList <GlobalAppModelParameter> allGlobalParams = WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <GlobalAppModelParameter>();

            for (int i = 0; i < AppModel.GlobalAppModelParameters.Count; i++)
            {
                GlobalAppModelParameter apiGlobalParamInstance = AppModel.GlobalAppModelParameters[i];
                GlobalAppModelParameter globalParamInstance    = allGlobalParams.Where(x => x.Guid == apiGlobalParamInstance.Guid).FirstOrDefault();
                //If the param still exist in the global list
                if (globalParamInstance != null)
                {
                    //Check for change and update in Configurations tab
                    if (!globalParamInstance.PlaceHolder.Equals(apiGlobalParamInstance.PlaceHolder))
                    {
                        AppModel.UpdateParamsPlaceholder(this, new List <string> {
                            apiGlobalParamInstance.PlaceHolder
                        }, globalParamInstance.PlaceHolder);
                        apiGlobalParamInstance.PlaceHolder = globalParamInstance.PlaceHolder;
                    }
                    apiGlobalParamInstance.CurrentValue = globalParamInstance.CurrentValue;

                    if (globalParamInstance.OptionalValuesList.Count > 0)
                    {
                        bool recoverSavedOV       = false;
                        Guid currentDefaultOVGuid = new Guid();
                        //Save current default
                        if (apiGlobalParamInstance.OptionalValuesList.Count > 0)
                        {
                            currentDefaultOVGuid = apiGlobalParamInstance.OptionalValuesList.Where(x => x.IsDefault == true).FirstOrDefault().Guid;
                            recoverSavedOV       = true;
                        }

                        string newDefaultOV = null;
                        apiGlobalParamInstance.OptionalValuesList.ClearAll();
                        foreach (OptionalValue ov in globalParamInstance.OptionalValuesList)
                        {
                            OptionalValue newOV = new OptionalValue();
                            newOV.Guid  = ov.Guid;
                            newOV.Value = ov.Value;
                            if (ov.IsDefault)
                            {
                                newDefaultOV = ov.Guid.ToString();
                            }
                            apiGlobalParamInstance.OptionalValuesList.Add(newOV);
                        }

                        if (recoverSavedOV)
                        {
                            OptionalValue savedOV = apiGlobalParamInstance.OptionalValuesList.Where(x => x.Guid == currentDefaultOVGuid).FirstOrDefault();
                            if (savedOV != null)
                            {
                                savedOV.IsDefault = true;
                            }
                            else
                            {
                                apiGlobalParamInstance.OptionalValuesList.Where(x => x.Guid.ToString() == newDefaultOV).FirstOrDefault().IsDefault = true;
                            }
                        }
                        else
                        {
                            apiGlobalParamInstance.OptionalValuesList.Where(x => x.Guid.ToString() == newDefaultOV).FirstOrDefault().IsDefault = true;
                        }


                        apiGlobalParamInstance.OnPropertyChanged(nameof(AppModelParameter.OptionalValuesString));
                    }
                    else
                    {
                        apiGlobalParamInstance.OptionalValuesList.ClearAll();
                    }

                    apiGlobalParamInstance.OnPropertyChanged(nameof(AppModelParameter.PlaceHolder));
                }
                else
                {
                    AppModel.GlobalAppModelParameters.Remove(apiGlobalParamInstance);
                    i--;
                }
            }
        }