private void AddExportReport(
            ExportReport.ReportLevel level,
            String sourceComponent,
            String description,
            String detail,
            IEnumerable <IExportSource> sourceExportData,
            Exception exception = null)
        {
            var exportReport = new ExportReport
            {
                Level           = level,
                SourceComponent = sourceComponent,
                Description     = description,
                Detail          = detail,
                Exception       = exception,
                ExportSources   = sourceExportData
            };

            switch (this.ExportContext)
            {
            case ExportContext.Data:
                if (this._currentObjectBase.Any())
                {
                    this._currentObjectBase.Last().Reports.Add(exportReport);
                    this._currentObjectBase.Last().ExportValidity = ExportValidity.Malformed;
                }
                else
                {
                    this.Reports.Add(exportReport);
                    this.ExportValidity = ExportValidity.Malformed;
                }
                break;

            case ExportContext.Parsing:
                this.Reports.Add(exportReport);
                this.ExportValidity = ExportValidity.Malformed;
                break;

            case ExportContext.Done:
                this.Reports.Add(exportReport);
                this.ExportValidity = ExportValidity.Malformed;
                break;

            case ExportContext.Unknown:
                this.Reports.Add(exportReport);
                this.ExportValidity = ExportValidity.Malformed;
                break;
            }
        }
 public void AddExportReport(
     ExportReport.ReportLevel level,
     String sourceComponent,
     String description,
     IEnumerable <IExportSource> sourceExportData,
     Exception exception = null) => this.AddExportReport(level, sourceComponent, description, null, sourceExportData, exception);