public QueryLoadResult Load(Stream stream)
        {
            var textReader = new StreamReader(stream);
            var csv        = new CsvReader(textReader);

            csv.Configuration.RegisterClassMap <QueryCsvMap>();

            var fileLoadResult = new QueryLoadResult();

            try
            {
                var fileData = csv.GetRecords <FileUploadQuery>().ToList();
                fileLoadResult.Data = fileData;
            }
            catch (ReaderException re)
            {
                fileLoadResult.Error = $"{FailedToImportMessage} {re.Message} {re.InnerException?.Message}";
            }
            catch (ValidationException ve)
            {
                fileLoadResult.Error = $"{FailedToImportMessage} {ve.Message} {ve.InnerException?.Message}";
            }
            catch (BadDataException bde)
            {
                fileLoadResult.Error = $"{FailedToImportMessage} {bde.Message} {bde.InnerException?.Message}";
            }

            return(fileLoadResult);
        }
        public QueryLoadResult Load(Stream stream)
        {
            var fileLoadResult    = new QueryLoadResult();
            var fileUploadQueries = new List <FileUploadQuery>();

            using (var document = SpreadsheetDocument.Open(stream, false))
            {
                var workbookPart   = document.WorkbookPart;
                var sheets         = workbookPart.Workbook.GetFirstChild <Sheets>().Elements <Sheet>();
                var relationshipId = sheets.First().Id.Value;
                var worksheetPart  = (WorksheetPart)document.WorkbookPart.GetPartById(relationshipId);
                var workSheet      = worksheetPart.Worksheet;
                var sheetData      = workSheet.GetFirstChild <SheetData>();
                var rows           = sheetData.Descendants <Row>().ToList();
                rows.RemoveAt(0);

                foreach (var row in rows)
                {
                    var fileUploadQuery = CreateQuery(document, row);
                    fileUploadQueries.Add(fileUploadQuery);
                }

                fileLoadResult.Data = fileUploadQueries;

                return(fileLoadResult);
            }
        }
        public CsvLoadedSuccess()
        {
            var fileReader = new CsvQueryFileReader();

            using (var stream = File.Open(DataFilePath, FileMode.Open))
            {
                _loadResult  = fileReader.Load(stream);
                _firstRecord = _loadResult.Data[0];
            }
        }