public async Task <IActionResult> UploadFile(IFormCollection form) { try { if (form.Equals(null)) { throw new Exception("Ошибка в обработке данных с формы"); } // Get file Jvnlp var fileJvnlp = form.Files.FirstOrDefault(); // check byte and type file if (fileJvnlp == null) { throw new Exception("Файл не загружен"); } if (!fileJvnlp.ContentType.Equals("application/vnd.ms-excel") && !fileJvnlp.ContentType.Equals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) { throw new Exception("Неверный тип файла"); } using var memoryStream = new StreamReader(fileJvnlp.OpenReadStream()); var fileProcessing = new UploadFile(); AllTableJvnlp.Clear(); var responseRead = fileProcessing.ReadFileJvnlp(memoryStream, fileJvnlp.FileName); _newColumnCount = fileProcessing.NewColumnCount; if (responseRead.Count == 0) { throw new Exception( "Ошибка в чтении файла excel. Файл должен содержать листы 'Главный лист со позициями для расчёта' и 'Лист с исключенными позициями'"); } AllTableJvnlp.Add(responseRead[(int)JvnlpLists.JVNLP]); AllTableJvnlp.Add(responseRead[(int)JvnlpLists.Excluded]); NewDateUpdate = fileProcessing.NewDateUpdate; var jsonOriginalDrugs = JsonConvert.SerializeObject(responseRead[(int)JvnlpLists.JVNLP].Take(VisibleLines)); var jsonExcludedDrugs = JsonConvert.SerializeObject(responseRead[(int)JvnlpLists.Excluded].Take(VisibleLines)); return(new JsonResult(new { original = new { drugs = jsonOriginalDrugs, drugsLength = responseRead[(int)JvnlpLists.JVNLP].Length - 3, drugsViewLength = responseRead[(int)JvnlpLists.JVNLP].Take(VisibleLines).Count() - 3 }, excluded = new { drugs = jsonExcludedDrugs, drugsLength = responseRead[(int)JvnlpLists.Excluded].Length - 3, drugsViewLength = responseRead[(int)JvnlpLists.Excluded].Take(VisibleLines).Count() - 3 } }) { StatusCode = 200 }); } catch (Exception e) { return(new JsonResult(new { message = e.Message }) { StatusCode = 500 }); } }