Пример #1
0
        private void CreateBusinessFlowReport(BusinessFlowReport businessFlowReport)
        {
            //TODO: use the new cool style and create in parallel

            List <string> headers = new List <string>();

            headers.Add(GingerDicser.GetTermResValue(eTermResKey.BusinessFlow));
            headers.Add("Elapsed");
            headers.Add("Status");

            List <BusinessFlowReport> ll = new List <BusinessFlowReport>();

            ll.Add(businessFlowReport);
            XNode m = CreateHTMLTable(ll, headers, BizFlowHTMLColumns);

            mStringBuilder.Append(m.ToString());

            //append Activites
            List <string> headers2 = new List <string>();

            headers2.Add(GingerDicser.GetTermResValue(eTermResKey.Activities));
            headers2.Add(nameof(ActivityReport.ActivityName));
            headers2.Add(nameof(ActivityReport.RunStatus));
            headers2.Add(nameof(ActivityReport.ElapsedSecs));

            //XNode m2 = CreateHTMLTable(businessFlowReport.Activities, headers2, BizFlowHTMLColumns);
            //mStringBuilder.Append(m2.ToString());

            //foreach (ActivityReport activityReport in businessFlowReport.Activities)
            //{
            //    CreateActivityReport(activityReport);
            //}
        }
Пример #2
0
        public override object SetReportBusinessFlow(Context context, bool offlineMode, Amdocs.Ginger.Common.eExecutedFrom executedFrom, bool isConfEnable)
        {
            BusinessFlowReport BFR = GetBFReportData(context.BusinessFlow, context.Environment);

            if (isConfEnable)
            {
                if (offlineMode)
                {
                    // To check whether the execution is from Runset/Automate tab
                    if ((executedFrom == Amdocs.Ginger.Common.eExecutedFrom.Automation))
                    {
                        context.BusinessFlow.ExecutionFullLogFolder = context.BusinessFlow.ExecutionLogFolder;
                    }
                    else if ((WorkSpace.Instance.RunsetExecutor.RunSetConfig.LastRunsetLoggerFolder != null))
                    {
                        context.BusinessFlow.ExecutionFullLogFolder = context.BusinessFlow.ExecutionLogFolder;
                    }
                    SaveObjToReporsitory(BFR, Path.Combine(context.BusinessFlow.ExecutionFullLogFolder, "BusinessFlow.txt"));
                }
                else
                {
                    // use Path.cOmbine
                    SaveObjToReporsitory(BFR, Path.Combine(ExecutionLogfolder, context.BusinessFlow.ExecutionLogFolder, "BusinessFlow.txt"));
                    context.BusinessFlow.ExecutionFullLogFolder = Path.Combine(ExecutionLogfolder, context.BusinessFlow.ExecutionLogFolder);
                }
                if (executedFrom == Amdocs.Ginger.Common.eExecutedFrom.Automation)
                {
                    this.ExecutionLogBusinessFlowsCounter = 0;
                    //this.BFCounter = 0;
                }
            }
            return(BFR);
        }
Пример #3
0
        public void BusinessflowReportTest()
        {
            string BusinessFlowReportFile = GingerTestHelper.TestResources.GetTestResourcesFile(@"Reports\BusinessFlow.txt");

            try
            {
                BusinessFlowReport BFR = (BusinessFlowReport)JsonLib.LoadObjFromJSonFile(BusinessFlowReportFile, typeof(BusinessFlowReport));
                Assert.AreEqual("Failed", BFR.RunStatus);
                Assert.AreEqual(float.Parse("36.279", CultureInfo.InvariantCulture), BFR.ElapsedSecs.Value);
            }

            catch (Exception Ex)
            {
                Assert.Fail(Ex.Message);
            }
        }
        public override object SetReportBusinessFlow(Context context, bool offlineMode, Amdocs.Ginger.Common.eExecutedFrom executedFrom, bool isConfEnable)
        {
            BusinessFlowReport BFR = null;

            try
            {
                BFR = GetBFReportData(context.BusinessFlow, context.Environment);
                if (isConfEnable)
                {
                    if (offlineMode)
                    {
                        // To check whether the execution is from Runset/Automate tab
                        if ((executedFrom == Amdocs.Ginger.Common.eExecutedFrom.Automation))
                        {
                            context.BusinessFlow.ExecutionFullLogFolder = context.BusinessFlow.ExecutionLogFolder;
                        }
                        else if ((WorkSpace.Instance.RunsetExecutor.RunSetConfig.LastRunsetLoggerFolder != null))
                        {
                            context.BusinessFlow.ExecutionFullLogFolder = context.BusinessFlow.ExecutionLogFolder;
                        }
                        SaveObjToReporsitory(BFR, Path.Combine(context.BusinessFlow.ExecutionFullLogFolder, "BusinessFlow.txt"));
                    }
                    else
                    {
                        if (!Directory.Exists(Path.Combine(ExecutionLogfolder, context.BusinessFlow.ExecutionLogFolder)))
                        {
                            CreateNewDirectory(Path.Combine(ExecutionLogfolder, context.BusinessFlow.ExecutionLogFolder));
                        }

                        // use Path.cOmbine
                        SaveObjToReporsitory(BFR, Path.Combine(ExecutionLogfolder, context.BusinessFlow.ExecutionLogFolder, "BusinessFlow.txt"));
                        context.BusinessFlow.ExecutionFullLogFolder = Path.Combine(ExecutionLogfolder, context.BusinessFlow.ExecutionLogFolder);
                    }
                    if (executedFrom == Amdocs.Ginger.Common.eExecutedFrom.Automation)
                    {
                        this.ExecutionLogBusinessFlowsCounter = 0;
                        //this.BFCounter = 0;
                    }
                }
            }
            catch (Exception exc)
            {
                Reporter.ToLog(eLogLevel.ERROR, "Exception occured " + exc.Message, exc);
            }

            return(BFR);
        }
Пример #5
0
        internal BusinessFlowReport GetBFReportData(BusinessFlow businessFlow, ProjEnvironment environment)
        {
            BusinessFlowReport BFR = new BusinessFlowReport(businessFlow);

            BFR.VariablesBeforeExec         = businessFlow.VariablesBeforeExec;
            BFR.SolutionVariablesBeforeExec = businessFlow.SolutionVariablesBeforeExec;
            BFR.Seq = this.ExecutionLogBusinessFlowsCounter;
            if (!string.IsNullOrEmpty(businessFlow.RunDescription))
            {
                if (mVE == null)
                {
                    mVE = new GingerCore.ValueExpression(environment, businessFlow, new ObservableList <GingerCore.DataSource.DataSourceBase>(), false, "", false);
                }
                mVE.Value          = businessFlow.RunDescription;
                BFR.RunDescription = mVE.ValueCalculated;
            }
            return(BFR);
        }
Пример #6
0
 public void SetReportData(BusinessFlowReport bfReport)
 {
     this.Seq                    = bfReport.Seq;
     this.GUID                   = Guid.Parse(bfReport.GUID);
     InstanceGUID                = bfReport.InstanceGUID;
     this.Name                   = bfReport.Name;
     this.Description            = bfReport.Description;
     RunDescription              = bfReport.RunDescription;
     Environment                 = bfReport.Environment;
     StartTimeStamp              = bfReport.StartTimeStamp;
     EndTimeStamp                = bfReport.EndTimeStamp;
     Elapsed                     = bfReport.Elapsed;
     this.RunStatus              = bfReport.RunStatus;
     VariablesBeforeExec         = bfReport.VariablesBeforeExec;
     VariablesAfterExec          = bfReport.VariablesAfterExec;
     SolutionVariablesBeforeExec = bfReport.SolutionVariablesBeforeExec;
     SolutionVariablesAfterExec  = bfReport.SolutionVariablesAfterExec;
     BFFlowControlDT             = bfReport.BFFlowControls;
 }
Пример #7
0
        public override string CreateReport(ReportInfo reportInfo)
        {
            base.RI        = reportInfo;
            mStringBuilder = new StringBuilder();

            CreateReportHeader();

            switch (reportInfo.reportInfoLevel)
            {
            case ReportInfo.ReportInfoLevel.BussinesFlowLevel:
                BusinessFlowReport businessFlowReport = (BusinessFlowReport)reportInfo.ReportInfoRootObject;
                businessFlowReport.ExecutionLoggerIsEnabled = true;
                CreateBusinessFlowReport(businessFlowReport);
                break;

                // TODO: all the rest
            }


            return(mStringBuilder.ToString());
        }
Пример #8
0
        public override void BusinessFlowEnd(uint eventTime, BusinessFlow businessFlow, bool offlineMode = false)
        {
            BusinessFlowReport businessFlowReport = new BusinessFlowReport(businessFlow);

            SaveObjToJSonFile(businessFlowReport, Path.Combine(mDumpFolder, CurrentBusinessFlowFolder, "BusinessFlowReport.txt"));
        }