コード例 #1
0
        public IActionResult ReadCSVFile(VisualizationViewModel visualizationModel)
        {
            if (ModelState.IsValid)
            {
                if (!_context.CheckIfNameOfFileIsUnique(visualizationModel.NameOfFile))
                {
                    return(RedirectToAction("Index"));
                }

                var folderName = "Upload";
                ReadFromCSVCollectionWithErrors records = new ReadFromCSVCollectionWithErrors();

                var savePath = Path.Combine(_environment.WebRootPath, folderName, visualizationModel.CsvFile.FileName);

                using (var fileStream = new FileStream(savePath, FileMode.Create))
                {
                    visualizationModel.CsvFile.CopyTo(fileStream);
                }

                records = _csvReader.ReadContentOfCsvFile(savePath);

                if (records.Errors.Count == 0)
                {
                    try
                    {
                        _context.AddDataFromNewCSVFile(records.CollectionOfRecords, visualizationModel.NameOfFile);
                        return(RedirectToAction("Index", new { ModelNotValid = false }));
                    }
                    catch (Exception e)
                    {
                        records.Errors.Add("There was an error during saving data to database");
                    }
                }

                return(RedirectToAction("Index", new { ModelNotValid = true, Errors = records.Errors }));
            }
            else
            {
                return(RedirectToAction("Index", new { ModelNotValid = true }));
            }
        }