private RunStatus ConvertGingerStatusToJira(eRunStatus runStatus) { RunStatus responseStatus = RunStatus.EXECUTING; switch (runStatus) { case eRunStatus.Failed: responseStatus = RunStatus.FAIL; break; case eRunStatus.Passed: responseStatus = RunStatus.PASS; break; case eRunStatus.Skipped: case eRunStatus.Blocked: case eRunStatus.Pending: responseStatus = RunStatus.TODO; break; default: responseStatus = RunStatus.TODO; break; } return(responseStatus); }
private eRunStatus getGroupActivityStatus(List <Activity> activityList, ref long?elapsed, ref DateTime startedAt, ref DateTime finishedAt) { eRunStatus status = eRunStatus.Skipped; //if there is one fail then Activity status is fail if (activityList.Where(x => x.Status == eRunStatus.Failed).FirstOrDefault() != null) { status = eRunStatus.Failed; } else { // If we have at least 1 pass then it passed, otherwise will remain Skipped if (activityList.Where(x => x.Status == eRunStatus.Passed).FirstOrDefault() != null) { status = eRunStatus.Passed; } } foreach (var item in activityList) { elapsed += item.Elapsed; } if (activityList.Where(x => (x.Status == eRunStatus.Passed || x.Status == eRunStatus.Failed)).Any()) { startedAt = activityList.Where(x => (x.Status == eRunStatus.Passed || x.Status == eRunStatus.Failed)).FirstOrDefault().StartTimeStamp; finishedAt = activityList.Where(x => (x.Status == eRunStatus.Passed || x.Status == eRunStatus.Failed)).LastOrDefault().EndTimeStamp; } return(status); }
public override void SetReportRunner(GingerRunner gingerRunner, GingerReport gingerReport, ExecutionLoggerManager.ParentGingerData gingerData, Context mContext, string filename, int runnerCount) { base.SetReportRunner(gingerRunner, gingerReport, gingerData, mContext, filename, runnerCount); LiteDbRunner runner = new LiteDbRunner(); runner.BusinessFlowsColl.AddRange(liteDbBFList); if (lastRunnertStatus == eRunStatus.Stopped && gingerRunner.RunsetStatus != eRunStatus.Stopped && runner.BusinessFlowsColl.Count > gingerRunner.BusinessFlows.Count) { runner.BusinessFlowsColl.RemoveRange(0, gingerRunner.BusinessFlows.Count); } SetRunnerChildCounts(runner); runner.SetReportData(gingerReport); SaveObjToReporsitory(runner, liteDbManager.NameInDb <LiteDbRunner>()); if (ExecutionLoggerManager.RunSetReport == null) { ExecutionLoggerManager.RunSetReport = new RunSetReport(); ExecutionLoggerManager.RunSetReport.GUID = Guid.NewGuid().ToString(); } if (lastRunnertStatus == Amdocs.Ginger.CoreNET.Execution.eRunStatus.Stopped) { var runnerItem = ExecutionLoggerManager.RunSetReport.liteDbRunnerList.Find(x => x.Name == runner.Name); ExecutionLoggerManager.RunSetReport.liteDbRunnerList.Remove(runnerItem); } if (runner.RunStatus != eRunStatus.Stopped.ToString()) { liteDbBFList.Clear(); } ExecutionLoggerManager.RunSetReport.liteDbRunnerList.Add(runner); lastRunnertStatus = gingerRunner.RunsetStatus; ClearSeq(); }
private void RunStatusOnChange(eRunStatus status) { switch (status) { case eRunStatus.Running: IsRuning = true; IsPause = false; IsStopping = false; IsStopped = false; ////_redLamp.SetFalse(); ////_amberLamp.SetFalse(); ////_greenLamp.SetTrue(); //_buzzer.SetFalse(); break; case eRunStatus.Pause: IsRuning = false; IsPause = true; IsStopping = false; IsStopped = false; ////_redLamp.SetTrue(); ////_amberLamp.SetFalse(); ////_greenLamp.SetTrue(); //_buzzer.SetFalse(); break; case eRunStatus.Stopping: IsRuning = false; IsPause = false; IsStopping = true; IsStopped = false; ////_redLamp.SetTrue(); ////_amberLamp.SetFalse(); ////_greenLamp.SetTrue(); //_buzzer.SetFalse(); break; case eRunStatus.Stopped: IsRuning = false; IsPause = false; IsStopping = false; IsStopped = true; ////_redLamp.SetTrue(); ////_amberLamp.SetFalse(); ////_greenLamp.SetFalse(); //_buzzer.SetFalse(); break; } }
private string CraeteGroupActivitiesStatusXml(BusinessFlow BF, ref int passCount, ref int failedCount, ref int blockedCount) { string BFResults = string.Empty; long? elapsed = 0; DateTime startedAt = new DateTime(); DateTime finishedAt = new DateTime(); if (BF.ActivitiesGroups.Count > 0) { foreach (var item in BF.ActivitiesGroups) { if (item.ActivitiesIdentifiers.Count > 0) { List <Activity> acts = item.ActivitiesIdentifiers.Select(a => a.IdentifiedActivity).ToList(); eRunStatus status = getGroupActivityStatus(acts, ref elapsed, ref startedAt, ref finishedAt); BFResults += buildXml(status, ref passCount, ref failedCount, ref blockedCount, General.ConvertInvalidXMLCharacters(BF.Name), General.ConvertInvalidXMLCharacters(item.Name), General.ConvertInvalidXMLCharacters(item.Description), elapsed, startedAt, finishedAt); } } //create ungrouped for activities that are not in any group List <Activity> unGroupedAct = new List <Activity>(); foreach (var item in BF.Activities) { if (item.ActivitiesGroupID == string.Empty) { unGroupedAct.Add(item); } } if (unGroupedAct.Count > 0) { eRunStatus status = getGroupActivityStatus(unGroupedAct, ref elapsed, ref startedAt, ref finishedAt); BFResults += buildXml(status, ref passCount, ref failedCount, ref blockedCount, General.ConvertInvalidXMLCharacters(BF.Name), "Ungrouped", "Ungrouped", elapsed, startedAt, finishedAt); } } else//if there are no groups create default group { eRunStatus status = getGroupActivityStatus(BF.Activities.ToList(), ref elapsed, ref startedAt, ref finishedAt); BFResults += buildXml(status, ref passCount, ref failedCount, ref blockedCount, General.ConvertInvalidXMLCharacters(BF.Name), "Ungrouped", "Ungrouped", elapsed, startedAt, finishedAt); } return(BFResults); }
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 }