private void GenerateBFReport(BusinessFlow bf) { try { LiteDbManager dbManager = new LiteDbManager(WorkSpace.Instance.SolutionRepository.ConvertSolutionRelativePath(WorkSpace.Instance.Solution.LoggerConfigurations.CalculatedLoggerFolder)); var result = dbManager.GetRunSetLiteData(); List <LiteDbRunSet> filterData = dbManager.FilterCollection(result, Query.All()); LiteDbRunSet runSetLast = filterData.Last(); //runSetLast._id = new ObjectId(); LiteDbRunner runnerFilter = runSetLast.RunnersColl.Find(r => r.GUID.ToString() == mRunner.Guid.ToString()); //runnerFilter._id = new ObjectId(); //runSetLast.RunnersColl = new List<LiteDbRunner>() { runnerFilter }; LiteDbBusinessFlow bfFilter = runnerFilter.BusinessFlowsColl.Find(b => b.GUID.ToString() == bf.Guid.ToString() && b.StartTimeStamp.ToString() == bf.StartTimeStamp.ToLocalTime().ToString()); if (bfFilter == null) { Reporter.ToUser(eUserMsgKey.BFNotExistInDB); return; } //runnerFilter.RunStatus = bfFilter.RunStatus; //runSetLast.RunStatus = runnerFilter.RunStatus; //runnerFilter.BusinessFlowsColl = new List<LiteDbBusinessFlow>() { bfFilter }; //dbManager.WriteToLiteDb(dbManager.NameInDb<LiteDbRunner>(), new List<LiteDbReportBase>() { runnerFilter }); //dbManager.WriteToLiteDb(dbManager.NameInDb<LiteDbRunSet>(), new List<LiteDbReportBase>() { runSetLast }); WebReportGenerator webReporterRunner = new WebReportGenerator(); webReporterRunner.RunNewHtmlReport(string.Empty, runSetLast._id.ToString(), new WebReportFilter() { Guid = bfFilter.GUID.ToString() }); //var newRSData = dbManager.GetRunSetLiteData(); //newRSData.Delete(runSetLast._id); //var newRunnerData = dbManager.GetRunnerLiteData(); //newRunnerData.Delete(runnerFilter._id); } catch (Exception ex) { } }
public override object SetReportBusinessFlow(Context context, bool offlineMode, Amdocs.Ginger.Common.eExecutedFrom executedFrom, bool isConfEnable) { LiteDbBusinessFlow BFR = new LiteDbBusinessFlow(); if (executedFrom == eExecutedFrom.Automation) { ClearSeq(); } if (liteDbBFList.Count >= context.Runner.BusinessFlows.Count) { liteDbBFList.RemoveRange(0, context.Runner.BusinessFlows.Count); } if (lastBfStatus == eRunStatus.Stopped && context.BusinessFlow.RunStatus != eRunStatus.Stopped) { BFR._id = lastBfObjId; ClearSeq(); } SetBfobjects(context, executedFrom); context.Runner.CalculateBusinessFlowFinalStatus(context.BusinessFlow); BFR.SetReportData(GetBFReportData(context.BusinessFlow, context.Environment)); BFR.Seq = ++this.bfSeq; int ChildExecutableItemsCountActivity = 0; int ChildExecutedItemsCountActivity = 0; int ChildPassedItemsCountActivity = 0; ChildExecutableItemsCountActivity = context.BusinessFlow.Activities.Count(x => x.Active == true); ChildExecutedItemsCountActivity = context.BusinessFlow.Activities.Where(ac => ac.Status == eRunStatus.Failed || ac.Status == eRunStatus.Passed || ac.Status == eRunStatus.FailIgnored).Count(); ChildPassedItemsCountActivity = context.BusinessFlow.Activities.Where(ac => ac.Status == eRunStatus.Passed).Count(); BFR.ChildExecutableItemsCount.Add(HTMLReportConfiguration.eExecutionStatisticsCountBy.Activities.ToString(), ChildExecutableItemsCountActivity); BFR.ChildExecutedItemsCount.Add(HTMLReportConfiguration.eExecutionStatisticsCountBy.Activities.ToString(), ChildExecutedItemsCountActivity); BFR.ChildPassedItemsCount.Add(HTMLReportConfiguration.eExecutionStatisticsCountBy.Activities.ToString(), ChildPassedItemsCountActivity); int ChildExecutableItemsCountAction = 0; int ChildExecutedItemsCountAction = 0; int ChildPassedItemsCountAction = 0; foreach (LiteDbActivity activity in liteDbActivityList) { ChildExecutableItemsCountAction = ChildExecutableItemsCountAction + activity.ChildExecutableItemsCount; ChildExecutedItemsCountAction = ChildExecutedItemsCountAction + activity.ChildExecutedItemsCount; ChildPassedItemsCountAction = ChildPassedItemsCountAction + activity.ChildPassedItemsCount; } BFR.ChildExecutableItemsCount.Add(HTMLReportConfiguration.eExecutionStatisticsCountBy.Actions.ToString(), ChildExecutableItemsCountAction); BFR.ChildExecutedItemsCount.Add(HTMLReportConfiguration.eExecutionStatisticsCountBy.Actions.ToString(), ChildExecutedItemsCountAction); BFR.ChildPassedItemsCount.Add(HTMLReportConfiguration.eExecutionStatisticsCountBy.Actions.ToString(), ChildPassedItemsCountAction); if (context.BusinessFlow.LiteDbId != null && executedFrom == eExecutedFrom.Automation) { BFR._id = context.BusinessFlow.LiteDbId; var BFRToUpdate = liteDbManager.GetBfLiteData().IncludeAll().Find(x => x._id == BFR._id).ToList(); if (BFRToUpdate.Count > 0) { foreach (var activity in (BFRToUpdate[0] as LiteDbBusinessFlow).ActivitiesColl) { if (liteDbActivityList.Any(ac => ac._id == activity._id)) { liteDbActivityList.RemoveAll(x => x._id == activity._id); } } liteDbActivityList.AddRange((BFRToUpdate[0] as LiteDbBusinessFlow).ActivitiesColl); } } if (WorkSpace.Instance.Solution.LoggerConfigurations.ExecutionLoggerConfigurationIsEnabled) { 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; } BFR.ActivitiesColl.AddRange(liteDbActivityList); BFR.ActivitiesGroupsColl.AddRange(liteDbAGList); SaveObjToReporsitory(BFR, liteDbManager.NameInDb <LiteDbBusinessFlow>()); liteDbActivityList.Clear(); liteDbAGList.Clear(); } else { BFR.ActivitiesColl.AddRange(liteDbActivityList); BFR.ActivitiesGroupsColl.AddRange(liteDbAGList); SaveObjToReporsitory(BFR, liteDbManager.NameInDb <LiteDbBusinessFlow>()); this.lastBfObjId = BFR._id; if (liteDbBFList.Exists(bf => bf._id == this.lastBfObjId)) { liteDbBFList.RemoveAll(bf => bf._id == this.lastBfObjId); } liteDbBFList.Add(BFR); liteDbActivityList.Clear(); liteDbAGList.Clear(); //context.BusinessFlow.ExecutionFullLogFolder = Path.Combine(ExecutionLogfolder,context.BusinessFlow.ExecutionLogFolder); } if (executedFrom == Amdocs.Ginger.Common.eExecutedFrom.Automation) { this.ExecutionLogBusinessFlowsCounter = 0; //this.BFCounter = 0; } } if (executedFrom == eExecutedFrom.Automation) { context.BusinessFlow.LiteDbId = BFR._id; } this.lastBfStatus = context.BusinessFlow.RunStatus; //return BFR; return(GetBFReportData(context.BusinessFlow, context.Environment));//Returning BusinessFlowReport so we will get execution info on the console }