コード例 #1
0
        /// <summary>
        /// Takes in an input HttpPostedFileBase and returns a parsed CsvTable object
        /// </summary>
        /// <param name="inputFile"></param>
        /// <param name="containsHeader"></param>
        /// <returns></returns>
        public CsvHandleResult ParseCsvFile(HttpPostedFileBase inputFile, bool containsHeader)
        {
            var result = new CsvHandleResult();

            if (!_validationService.IsCsvFile(inputFile.FileName))
            {
                result.ErrorMessage =
                    $"Selected file, {inputFile.FileName}, does not have supported format CSV. Nothing has been uploaded";
                return(result);
            }

            var uploadedFilePath = _fileService.StoreFile(inputFile);

            if (string.IsNullOrWhiteSpace(uploadedFilePath))
            {
                result.ErrorMessage = "File failed to save to server";
                return(result);
            }

            var fileContent = _fileService.ReadFile(uploadedFilePath);

            if (string.IsNullOrWhiteSpace(fileContent))
            {
                result.ErrorMessage = "File had no content";
                return(result);
            }

            var parsedFileContent = _parsingService.ParseCsv(fileContent, containsHeader);

            if (parsedFileContent == null)
            {
                result.ErrorMessage = "Failed to parse file content";
                return(result);
            }

            result.Success          = true;
            result.ParsedCsvContent = parsedFileContent;
            return(result);
        }
コード例 #2
0
ファイル: CsvFileHandler.cs プロジェクト: FDThoughts/APIs
        /// <summary>
        /// Validate, store and parse Csv File
        /// </summary>
        /// <param name="inputFile">IFormFile</param>
        /// <param name="isHeadedFile">bool</param>
        /// <returns>Successfully parsed data or error message - CsvHandleResult task</returns>
        public async Task <CsvHandleResult> ParseCsvFile(IFormFile inputFile,
                                                         bool isHeadedFile)
        {
            var result = new CsvHandleResult();

            // Check file is valid
            if (!_validationService.IsCsvFile(inputFile.FileName))
            {
                result.ErrorMessage =
                    $"Selected file, {inputFile.FileName}, does not have supported format CSV";
                return(result);
            }

            // Store the file
            var uploadedFilePath = await _fileService.StoreFile(inputFile);

            if (string.IsNullOrWhiteSpace(uploadedFilePath))
            {
                result.ErrorMessage = "File failed to save to server";
                return(result);
            }

            // Parse the file
            var parsedFileContent = _parsingService.ParseCsv(
                uploadedFilePath, isHeadedFile);

            if (parsedFileContent == null)
            {
                result.ErrorMessage = "Failed to parse file content";
                return(result);
            }

            result.Success          = true;
            result.ParsedCsvContent = parsedFileContent;

            return(result);
        }