public string ConsultaToCSV(IPrincipal user, string indexName, IList <string> selectFilter = null, IEnumerable <Tuple <string, string, string> > filterFilter = null, long numberEntries = 1000, bool allEntries = false) { try { int from = 0; int size = 10000; var tempDownloadFolderUser = Path.Combine(Configuration.DefaultTempFolder, user.Identity.Name, "downloadTemp"); Directory.CreateDirectory(tempDownloadFolderUser); var fileName = Path.Combine(tempDownloadFolderUser, $"{indexName}_{DateTime.Now.ToString("yyyyMMddHHmmss")}.csv"); if (allEntries) { numberEntries = _unitOfWork.TotalDocuments(indexName: indexName); } do { using (var export = new CsvExport()) { var result = this._unitOfWork.MatchAll(indexName: indexName, selectFilter: selectFilter, filterFilter: filterFilter, from: from, size: size); foreach (var item in result) { export.AddRow(); foreach (var key in item.Keys) { export[key] = item[key]; } } result.Clear(); if (from == 0) { export.ExportToFile(fileName, includeHeader: true); } else { export.AddLinesToFile(fileName); } } from += size; if ((from + size) >= numberEntries) { size = (int)(numberEntries - from); } }while (from < numberEntries); return(fileName); } catch (Exception erro) { throw erro; } }