public void submit(String result, Logger logger) {
		String state = null;
		if (failedPoints != 0) {
			state = ExecutionContext.ER_STATUS_FAILED;
			if (failedPoints + successPoints < getPoints()) {
				successPoints = getPoints() - failedPoints;
			}
			logger.log(LogLevel.ERROR, "Step '" + getStep() 
					+ "' failed with points [Total:" + (failedPoints + successPoints) 
					+ ", Failed:" + failedPoints 
					+ ", Succeeded:" + successPoints + "]!");
		}
		else {
			state = ExecutionContext.ER_STATUS_SUCCESSFUL;
			if (successPoints == 0 || successPoints < getPoints()) {
				successPoints = getPoints();
			}
			logger.log(LogLevel.INFO, "Step '" + getStep() + "' Succeeded with points [" + successPoints +"]!");
		}
		Date endTime = new Date();
		int totalPoints = failedPoints + successPoints;
		if (null != ExecutionContext.getExecutionContext().getAutomationService()) {
			String logUrl = ExecutionContext.getExecutionContext().getAutomationService().uploadFile(System.getProperty("user.dir") 
					+ File.separator + TestRobot.ICAUTO_LOG_PATH 
					+ File.separator + LogUtil.AutoLogName);
			String resultUrl = ExecutionContext.getExecutionContext().getAutomationService().uploadString(result);
			ExecutionContext.getExecutionContext().submitExeuctionResultWithNewER(
					getStep(), totalPoints, state, successPoints, startTime, endTime, logUrl, resultUrl);
		}
	}