/**
   * Builds alert file with all required information - type of event, attachments and sends to
   * ConnectEMC
   */
  protected void buildAlertFile(EmaApiConnectHome alertFile, EmaApiLogType log) throws Exception {
    _log.info("Start SendEvent::buildEventType");
    alertFile.eventAdd(getEventType(), log);

    // Create event file to attach
    String eventFilename = CONNECT_EMC_HOME + EmaApiUtils.emaGenerateFilename(_fileId);
    _log.info("Event filename: {}", eventFilename);
    ArrayList<String> fileList = genAttachFiles();
    BadRequestException badRequestException = null;

    if (fileList != null && !fileList.isEmpty()) {
      boolean attachLogs = true;
      try {
        validateAttachmentSize(fileList);
      } catch (BadRequestException e) {
        if (forceAttachLogs) {
          throw e;
        }
        badRequestException = e;
        attachLogs = false;
      }

      ArrayList<EmaApiFilenameType> attachFiles = new ArrayList<EmaApiFilenameType>();

      if (attachLogs) {
        for (String file : fileList) {
          EmaApiFilenameType filename = new EmaApiFilenameType();
          filename.setQualifiedFileName(file);
          filename.setTargetFileName(getTargetFileName(file));
          attachFiles.add(filename);
        }
      } else { // log size too big, not to attach logs
        for (String file : fileList) {
          if (file.equals(SYSTEM_LOGS_FILE_PATH) || file.equals(SYSTEM_EVENT_FILE_PATH)) {
            continue;
          }
          EmaApiFilenameType filename = new EmaApiFilenameType();
          filename.setQualifiedFileName(file);
          filename.setTargetFileName(getTargetFileName(file));
          attachFiles.add(filename);
        }
        AlertsLogger.getAlertsLogger()
            .warn(
                "ConnectEMC alert will be sent without logs attached due to logs have exceeded max allowed size ("
                    + this.getAttachmentsMaxSizeMB()
                    + " MB)");
      }
      alertFile.addFileRawData(eventFilename, attachFiles, log);
    }
    alertFile.write(eventFilename, log);
    alertFile.emaCreateDotEndFile(eventFilename, log);
    _log.info("Finish SendEvent::buildEventType");
    if (badRequestException != null) {
      throw badRequestException;
    }
  }