Exemplo n.º 1
0
        public ActWebAPIModelEditPage(ActWebAPIModel Act)
        {
            InitializeComponent();
            mAct = Act;
            if (mAct.APImodelGUID != new Guid())
            {
                AAMB = WorkSpace.Instance.SolutionRepository.GetRepositoryItemByGuid <ApplicationAPIModel>(mAct.APImodelGUID);
            }

            bool mappedNew = false;

            if (AAMB == null)//API mapped for this action is missing, Map new API
            {
                mappedNew = true;
                ChangeAPIMapping(mappedNew);
            }

            if (AAMB != null)
            {
                WorkSpace.Instance.RefreshGlobalAppModelParams(AAMB);
                UpdateOptionalValuesAndParams(!mappedNew);
                SetFieldsGrid();
            }
            else
            {
                //Show empty page, action is not mapped to any API
            }
        }
Exemplo n.º 2
0
        public void APIModelExecutionTest()
        {
            //Arrange
            Activity Activity1 = new Activity();

            Activity1.Active       = true;
            Activity1.ActivityName = "Web API Model";
            Activity1.CurrentAgent = wsAgent;
            mBF.Activities.Add(Activity1);


            ActWebAPIModel actWebAPIModel = new ActWebAPIModel();

            actWebAPIModel.APImodelGUID = Guid.Parse("fcac0742-4747-4939-99ab-2d23c33ab74e");
            actWebAPIModel.APIModelParamsValue.Add(new EnhancedActInputValue()
            {
                Param = "<<COUNTRYNAME>>", Value = "israel", ValueForDriver = "israel"
            });
            actWebAPIModel.Description          = "Testing Action";
            actWebAPIModel.Active               = true;
            actWebAPIModel.EnableRetryMechanism = false;

            mBF.Activities[0].Acts.Add(actWebAPIModel);

            mDriver.StartDriver();

            //Act
            mGR.RunRunner();


            //Assert
            //TODO: add some assert??
        }
Exemplo n.º 3
0
        public override void Finish()
        {
            foreach (ApplicationAPIModel aamb in AAMList)
            {
                ActWebAPIModel aNew = new ActWebAPIModel();

                aNew.Description         = aamb.Name + "- API Model Execution";
                aNew.Active              = true;
                aNew.SupportSimulation   = aamb.SupportSimulation;
                aNew.APImodelGUID        = aamb.Guid;
                aNew.APIModelParamsValue = GetEnhancedUpdatedParams(aamb.MergedParamsList);
                aNew.ReturnValues        = ConvertTemplateReturnValues(aamb.ReturnValues);
                aNew.AddNewReturnParams  = true;
                aNew.SolutionFolder      = App.UserProfile.Solution.Folder.ToUpper();

                actions.Add(aNew);

                //adding the new act after the selected action in the grid

                int selectedActIndex = -1;
                if (actions.CurrentItem != null)
                {
                    selectedActIndex = actions.IndexOf((Act)actions.CurrentItem);
                }

                if (selectedActIndex >= 0)
                {
                    actions.Move(actions.Count - 1, selectedActIndex + 1);
                }
            }
        }
Exemplo n.º 4
0
        private ActWebAPISoap CreateActWebAPISOAP(ApplicationAPIModel AAMB, ActWebAPIModel ActWebAPIModel)
        {
            ActWebAPISoap actWebAPISoap = new ActWebAPISoap();

            FillAPIBaseFields(AAMB, actWebAPISoap, ActWebAPIModel);
            return(actWebAPISoap);
        }
Exemplo n.º 5
0
        private ActWebAPIRest CreateActWebAPIREST(ApplicationAPIModel AAMB, ActWebAPIModel ActWebAPIModel)
        {
            ActWebAPIRest actWebAPIBase = new ActWebAPIRest();

            FillAPIBaseFields(AAMB, actWebAPIBase, ActWebAPIModel);
            return(actWebAPIBase);
        }
        /// <summary>
        /// This method is used to convert the legacy service actions to api actions from the businessflows provided
        /// </summary>
        /// <param name="businessFlows"></param>
        /// <param name="parameterizeRequestBody"></param>
        /// <param name="configuredValidationRequired"></param>
        public void ConvertToApiActionsFromBusinessFlows(ObservableList <BusinessFlowToConvert> businessFlows, bool parameterizeRequestBody, bool pullValidations, RepositoryFolder <ApplicationAPIModel> apiModelFolder)
        {
            ActWebAPIModel webAPIModel = new ActWebAPIModel();

            foreach (var bf in businessFlows)
            {
                try
                {
                    if (!mStopConversion)
                    {
                        bf.ConversionStatus = eConversionStatus.Pending;
                        if (IsValidWebServiceBusinessFlow(bf.BusinessFlow))
                        {
                            for (int activityIndex = 0; activityIndex < bf.BusinessFlow.Activities.Count(); activityIndex++)
                            {
                                Activity          activity = bf.BusinessFlow.Activities[activityIndex];
                                RepositoryItemKey ta       = WorkSpace.Instance.Solution.ApplicationPlatforms.Where(x => x.ItemName == activity.TargetApplication).FirstOrDefault().Key;
                                if (activity != null && activity.Active && WorkSpace.Instance.Solution.GetApplicationPlatformForTargetApp(ta.ItemName) == ePlatformType.WebServices)
                                {
                                    bf.ConvertedActionsCount += ConvertActivity(parameterizeRequestBody, pullValidations, activity, ta, apiModelFolder);
                                }
                            }
                        }
                        bf.ConversionStatus = eConversionStatus.Finish;
                    }
                }
                catch (Exception ex)
                {
                    Reporter.ToLog(eLogLevel.ERROR, "Error occurred while trying to convert action", ex);
                }
            }
        }
        /// <summary>
        /// This method will convert the Activity Actions
        /// </summary>
        /// <param name="parameterizeRequestBody"></param>
        /// <param name="pullValidations"></param>
        /// <param name="activity"></param>
        /// <param name="ta"></param>
        private int ConvertActivity(bool parameterizeRequestBody, bool pullValidations, Activity activity, RepositoryItemKey ta, RepositoryFolder <ApplicationAPIModel> apiModelFolder)
        {
            int convertionConter = 0;

            for (int actionIndex = 0; actionIndex < activity.Acts.Count; actionIndex++)
            {
                try
                {
                    Act act = (Act)activity.Acts[actionIndex];
                    if (act.Active && (act.GetType() == typeof(ActWebAPIRest) || act.GetType() == typeof(ActWebAPISoap)))
                    {
                        // get the index of the action that is being converted
                        int selectedActIndex = activity.Acts.IndexOf(act);

                        //Create/Update API Model
                        bool isModelExists = true;
                        ApplicationAPIModel applicationModel = GetAPIModelIfExists(act);

                        if (applicationModel == null)
                        {
                            isModelExists    = false;
                            applicationModel = new ApplicationAPIModel();
                            applicationModel.TargetApplicationKey = ta;
                            CreateAPIModelFromWebserviceAction(ref applicationModel, act, pullValidations, parameterizeRequestBody);
                        }

                        //Parse optional values
                        Dictionary <System.Tuple <string, string>, List <string> > optionalValuesPulledFromConvertedAction = new Dictionary <Tuple <string, string>, List <string> >();
                        if (applicationModel.AppModelParameters != null && applicationModel.AppModelParameters.Count > 0)
                        {
                            optionalValuesPulledFromConvertedAction = ParseParametersOptionalValues(applicationModel, (ActWebAPIBase)act);
                        }

                        //Create WebAPIModel action
                        ActWebAPIModel actApiModel = GetNewAPIModelAction(applicationModel, act, optionalValuesPulledFromConvertedAction);

                        activity.Acts.Insert(selectedActIndex + 1, actApiModel);
                        actionIndex++;
                        act.Active = false;
                        if (!isModelExists)
                        {
                            apiModelFolder.AddRepositoryItem(applicationModel);
                        }
                        else
                        {
                            WorkSpace.Instance.SolutionRepository.SaveRepositoryItem(applicationModel);
                        }

                        convertionConter++;
                    }
                }
                catch (Exception ex)
                {
                    Reporter.ToLog(eLogLevel.ERROR, "Error occurred while trying to convert the action", ex);
                }
            }

            return(convertionConter);
        }
        /// <summary>
        /// This method will create the new api model action
        /// </summary>
        /// <param name="applicationModel"></param>
        /// <param name="act"></param>
        /// <returns></returns>
        private ActWebAPIModel GetNewAPIModelAction(ApplicationAPIModel applicationModel, Act act, Dictionary <System.Tuple <string, string>, List <string> > optionalValuesPulledFromConvertedAction)
        {
            AutoMapper.MapperConfiguration mapConfigUIElement = new AutoMapper.MapperConfiguration(cfg => { cfg.CreateMap <Act, ActWebAPIModel>(); });
            ActWebAPIModel newActModel = mapConfigUIElement.CreateMapper().Map <Act, ActWebAPIModel>(act);

            newActModel.APImodelGUID = applicationModel.Guid;
            newActModel.Active       = true;
            newActModel.Reset();
            newActModel.APIModelParamsValue = GetAPIActionParams(applicationModel.AppModelParameters, optionalValuesPulledFromConvertedAction);
            //newActModel.ReturnValues = GetAPIModelActionReturnValues(applicationModel.ReturnValues); //For now we want to keep original validations on action
            return(newActModel);
        }
Exemplo n.º 9
0
        private void SetExecutionValue <T>(T param, ActWebAPIModel actWebAPIModel)
        {
            AppModelParameter     p            = param as AppModelParameter;
            EnhancedActInputValue enhanceInput = actWebAPIModel.APIModelParamsValue.Where(x => x.ParamGuid == p.Guid).FirstOrDefault();

            if (enhanceInput != null)
            {
                p.ExecutionValue = enhanceInput.ValueForDriver;
            }
            else
            {
                p.ExecutionValue = p.GetDefaultValue();
            }

            if (p is GlobalAppModelParameter && p.ExecutionValue.Equals(GlobalAppModelParameter.CURRENT_VALUE))
            {
                p.ExecutionValue = ((GlobalAppModelParameter)p).CurrentValue;
            }
        }
Exemplo n.º 10
0
        private ApplicationAPIModel SetAPIModelData(ApplicationAPIModel AAMB, ActWebAPIModel actWebAPIModel)
        {
            WorkSpace.Instance.RefreshGlobalAppModelParams(AAMB);
            //Duplicate Model for not changing on cache
            ApplicationAPIModel AAMBDuplicate = (ApplicationAPIModel)AAMB.CreateCopy(false);

            //Set model params with actual execution value
            foreach (AppModelParameter modelParam in AAMBDuplicate.AppModelParameters)
            {
                SetExecutionValue(modelParam, actWebAPIModel);
            }

            foreach (GlobalAppModelParameter globalParam in AAMBDuplicate.GlobalAppModelParameters)
            {
                SetExecutionValue(globalParam, actWebAPIModel);
            }

            actWebAPIModel.ActAppModelParameters = AAMBDuplicate.MergedParamsList;

            //Replace Placeholders with Execution Values
            AAMBDuplicate.SetModelConfigsWithExecutionData();
            return(AAMBDuplicate);
        }
Exemplo n.º 11
0
        private ObservableList <ActInputValue> ConvertAPIModelKeyValueToActInputValues(ObservableList <APIModelKeyValue> GingerCoreNETHttpHeaders, ActWebAPIModel actWebAPIModel)
        {
            ObservableList <ActInputValue> GingerCoreHttpHeaders = new ObservableList <ActInputValue>();

            if (GingerCoreNETHttpHeaders != null)
            {
                foreach (APIModelKeyValue AMKV in GingerCoreNETHttpHeaders)
                {
                    ActInputValue AIV = new ActInputValue();
                    AIV.Param          = AMKV.Param;
                    AIV.ValueForDriver = ReplacePlaceHolderParameneterWithActual(AMKV.Value, actWebAPIModel.APIModelParamsValue);
                    GingerCoreHttpHeaders.Add(AIV);
                }
            }
            return(GingerCoreHttpHeaders);
        }
Exemplo n.º 12
0
        private void FillAPIBaseFields(ApplicationAPIModel AAMB, ActWebAPIBase actWebAPIBase, ActWebAPIModel actWebAPIModel)
        {
            ApplicationAPIModel AAMBDuplicate = SetAPIModelData(AAMB, actWebAPIModel);

            //Initilizing Act Properties
            actWebAPIBase.AddNewReturnParams = actWebAPIModel.AddNewReturnParams;
            actWebAPIBase.SolutionFolder     = actWebAPIModel.SolutionFolder;
            actWebAPIBase.SupportSimulation  = actWebAPIModel.SupportSimulation;
            actWebAPIBase.AddOrUpdateInputParamValue(nameof(ActWebAPIBase.UseLegacyJSONParsing), "False");

            actWebAPIBase.Description = actWebAPIModel.Description;
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIRest.Fields.RequestType, AAMBDuplicate.RequestType.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIRest.Fields.ReqHttpVersion, AAMBDuplicate.ReqHttpVersion.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIRest.Fields.ResponseContentType, AAMBDuplicate.ResponseContentType.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIRest.Fields.CookieMode, AAMBDuplicate.CookieMode.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIRest.Fields.ContentType, AAMBDuplicate.ContentType.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPISoap.Fields.SOAPAction, AAMBDuplicate.SOAPAction);
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.EndPointURL, AAMBDuplicate.EndpointURL);
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.NetworkCredentialsRadioButton, AAMBDuplicate.NetworkCredentials.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.URLUser, AAMBDuplicate.URLUser);
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.URLDomain, AAMBDuplicate.URLDomain);
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.URLPass, AAMBDuplicate.URLPass);
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.DoNotFailActionOnBadRespose, AAMBDuplicate.DoNotFailActionOnBadRespose.ToString());
            actWebAPIBase.HttpHeaders = ConvertAPIModelKeyValueToActInputValues(AAMBDuplicate.HttpHeaders, actWebAPIModel);

            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.RequestBodyTypeRadioButton, AAMBDuplicate.RequestBodyType.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.RequestBody, AAMBDuplicate.RequestBody);
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.CertificateTypeRadioButton, AAMBDuplicate.CertificateType.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.CertificatePath, AAMBDuplicate.CertificatePath);
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.ImportCetificateFile, AAMBDuplicate.ImportCetificateFile.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.CertificatePassword, AAMBDuplicate.CertificatePassword);
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.SecurityType, AAMBDuplicate.SecurityType.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.AuthorizationType, AAMBDuplicate.AuthorizationType.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.TemplateFileNameFileBrowser, AAMBDuplicate.TemplateFileNameFileBrowser.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.AuthUsername, AAMBDuplicate.AuthUsername.ToString());
            actWebAPIBase.AddOrUpdateInputParamValueAndCalculatedValue(ActWebAPIBase.Fields.AuthPassword, AAMBDuplicate.AuthPassword.ToString());

            actWebAPIBase.ReturnValues = actWebAPIModel.ReturnValues;
        }