private async Task SendDataOnActionEndTask(Act action)
        {
            AccountReportAction accountReportAction = AccountReportEntitiesDataMapping.MapActionEndData(action, mContext);
            await AccountReportApiHandler.SendScreenShotsToCentralDBAsync((Guid)WorkSpace.Instance.RunsetExecutor.RunSetConfig.ExecutionID, action.ScreenShots.ToList());

            await AccountReportApiHandler.SendActionExecutionDataToCentralDBAsync(accountReportAction, true);
        }
示例#2
0
        public static AccountReportAction MapActionStartData(GingerCore.Actions.Act action, Context context)
        {
            action.ExecutionId = Guid.NewGuid(); // check incase of retry / flow control

            AccountReportAction accountReportAction = new AccountReportAction();

            if (context.BusinessFlow.CurrentActivity != null)
            {
                accountReportAction.Seq  = context.BusinessFlow.CurrentActivity.ExecutionLogActionCounter;
                action.ParentExecutionId = context.BusinessFlow.CurrentActivity.ExecutionId;
            }
            else
            {
                accountReportAction.Seq = 1;
            }
            accountReportAction.Id       = action.ExecutionId;
            accountReportAction.EntityId = action.Guid;
            accountReportAction.AccountReportDbActivityId = action.ParentExecutionId;
            accountReportAction.ExecutionId           = (Guid)WorkSpace.Instance.RunsetExecutor.RunSetConfig.ExecutionID;
            accountReportAction.Name                  = action.Description;
            accountReportAction.ActionType            = action.ActionType;
            accountReportAction.Description           = action.Description;
            accountReportAction.RunDescription        = GetCalculatedValue(context, action.RunDescription); //must pass also BF to VE
            accountReportAction.Environment           = ((GingerExecutionEngine)context.Runner).GingerRunner.ProjEnvironment.Name;
            accountReportAction.EnvironmentId         = ((GingerExecutionEngine)context.Runner).GingerRunner.ProjEnvironment.Guid;
            accountReportAction.StartTimeStamp        = action.StartTimeStamp;
            accountReportAction.InputValues           = GetInputValues(action);
            accountReportAction.CurrentRetryIteration = action.RetryMechanismCount;
            accountReportAction.Wait                  = Convert.ToInt32(action.Wait);
            accountReportAction.TimeOut               = action.Timeout;
            accountReportAction.RunStatus             = _InProgressStatus;

            return(accountReportAction);
        }
示例#3
0
        public static AccountReportAction MapActionEndData(GingerCore.Actions.Act action, Context context)
        {
            AccountReportAction accountReportAction = new AccountReportAction();
            List <string>       newScreenShotsList  = new List <string>();

            accountReportAction.Id       = action.ExecutionId;
            accountReportAction.EntityId = action.Guid;
            accountReportAction.AccountReportDbActivityId = action.ParentExecutionId;
            accountReportAction.ExecutionId         = (Guid)WorkSpace.Instance.RunsetExecutor.RunSetConfig.ExecutionID;
            accountReportAction.Name                = action.Description;
            accountReportAction.EndTimeStamp        = action.EndTimeStamp;
            accountReportAction.ElapsedEndTimeStamp = action.Elapsed;
            accountReportAction.RunStatus           = action.Status.ToString();
            accountReportAction.OutputValues        = action.ReturnValues.Select(a => a.Param + "_:_" + a.Actual + "_:_" + a.ExpectedCalculated + "_:_" + a.Status).ToList();
            accountReportAction.FlowControls        = action.FlowControls.Select(a => a.Condition + "_:_" + a.ConditionCalculated + "_:_" + a.FlowControlAction + "_:_" + a.Status).ToList();
            accountReportAction.Error               = action.Error;
            accountReportAction.ExInfo              = action.ExInfo;
            foreach (string screenshot in action.ScreenShots)
            {
                string newScreenshotPath = WorkSpace.Instance.RunsetExecutor.RunSetConfig.ExecutionID.ToString() + "/" + Path.GetFileName(screenshot);
                newScreenShotsList.Add(newScreenshotPath);
            }
            accountReportAction.ScreenShots = newScreenShotsList;

            return(accountReportAction);
        }
        public async Task SendActionExecutionDataToCentralDBAsync(AccountReportAction accountReportAction, bool isUpdate = false)
        {
            if (restClient != null)
            {
                string message = string.Format("execution data to Central DB for the Action:'{0}' (Execution Id:'{1}', Parent Activity Id:'{2}')", accountReportAction.Name, accountReportAction.Id, accountReportAction.AccountReportDbActivityId);
                try
                {
                    bool responseIsSuccess = await SendRestRequestAndGetResponse(SEND_ACTION_EXECUTION_DATA, accountReportAction, isUpdate).ConfigureAwait(false);

                    if (responseIsSuccess)
                    {
                        Reporter.ToLog(eLogLevel.DEBUG, "Successfully sent " + message);
                    }
                    else
                    {
                        Reporter.ToLog(eLogLevel.ERROR, "Failed to send " + message);
                    }
                }
                catch (Exception ex)
                {
                    Reporter.ToLog(eLogLevel.ERROR, "Exception when sending " + message, ex);
                }
            }
        }
 private async Task ActionStartTask(Act action)
 {
     AccountReportAction accountReportAction = AccountReportEntitiesDataMapping.MapActionStartData(action, mContext);
     await AccountReportApiHandler.SendActionExecutionDataToCentralDBAsync(accountReportAction);
 }