public IActionResult Exportar([FromServices] IMotoristaRepository repository, [FromQuery] string coluna = "nome", [FromQuery] string direcao = "asc", [FromQuery] string nome = null) { var resultado = repository.Obter(EnumHelpers.ParseOrDefault(coluna, MotoristaSort.Nome), string.IsNullOrEmpty(direcao) || direcao.Equals("asc"), DataString.FromNullableString(nome)); if (resultado.Tipo == ResultType.Valid) { StringBuilder csv = new StringBuilder(); csv.AppendLine("COD_MOTORISTA; NOME; AJUDANTE1; AJUDANTE2; TELEFONE1, TELEFONE2; PLACA"); foreach (var x in resultado.Dados) { csv.Append($"\"{(!string.IsNullOrEmpty(x.Nome) ? x.Nome : string.Empty)}\";"); csv.Append($"\"{(!string.IsNullOrEmpty(x.Ajudante1) ? x.Ajudante1 : string.Empty)}\";"); csv.Append($"\"{(!string.IsNullOrEmpty(x.Ajudante2) ? x.Ajudante2 : string.Empty)}\";"); csv.Append($"\"{(!string.IsNullOrEmpty(x.Telefone1) ? x.Telefone1 : string.Empty)}\";"); csv.Append($"\"{(!string.IsNullOrEmpty(x.Telefone2) ? x.Telefone2 : string.Empty)}\";"); csv.Append($"\"{(!string.IsNullOrEmpty(x.Placa) ? x.Placa : string.Empty)}\";"); csv.AppendLine(""); } string nomeArquivo = $"Motorista{DateTime.Now.ToString("yyyyMMdd_HHmmss")}.csv"; byte[] bytes = Encoding.UTF8.GetBytes(csv.ToString()); bytes = Encoding.UTF8.GetPreamble().Concat(bytes).ToArray(); return(File(bytes, "text/csv", nomeArquivo)); } return(Result(resultado)); }