public async Task <IActionResult> UploadFile(IFormFile file) { try { var sr = new StreamReader(file.OpenReadStream()); var dt = Util.ConvertCSVtoDataTable(sr); if (dt == null) { TempData["Error"] = "Arquivo em branco"; } else { if (Util.validaColunas(Dicionario.RetornaColunasClientes(), dt.Columns)) { var clientes = PopulaListaClientes(dt); var mensagem = ValidaInformacoes(clientes); if (Util.validaCampo(mensagem)) { TempData["Error"] = mensagem; } else { foreach (var cliente in clientes) { try { var result = await CadastrarCliente(cliente); if (!result.Succeeded) { TempData["Error"] = result.Errors; break; } } catch (Exception ex) { var user = await _userManager.FindByEmailAsync(cliente.Email); if (user != null) { await _userManager.DeleteAsync(user); } throw ex; } } } } else { TempData["Error"] = "As colunas do arquivo estão inválidas"; } } } catch { TempData["Error"] = "Algum erro desconhecido ocorreu, tente novamente"; } return(RedirectToAction(nameof(Index))); }