public async Task <FileSearchResponse> SearchAsync(FilesCivilQuery fcq)
 {
     fcq.FilePermissions =
         "[\"A\", \"Y\", \"T\", \"F\", \"C\", \"M\", \"L\", \"R\", \"B\", \"D\", \"E\", \"G\", \"H\", \"N\", \"O\", \"P\", \"S\", \"V\"]"; // for now, use all types - TODO: determine proper list of types?
     return(await _filesClient.FilesCivilGetAsync(_requestAgencyIdentifierId, _requestPartId,
                                                  _applicationCode, fcq.SearchMode, fcq.FileHomeAgencyId, fcq.FileNumber, fcq.FilePrefix,
                                                  fcq.FilePermissions, fcq.FileSuffixNumber, fcq.MDocReferenceTypeCode, fcq.CourtClass, fcq.CourtLevel,
                                                  fcq.NameSearchType, fcq.LastName, fcq.OrgName, fcq.GivenName, fcq.Birth?.ToString("yyyy-MM-dd"),
                                                  fcq.SearchByCrownPartId, fcq.SearchByCrownActiveOnly, fcq.SearchByCrownFileDesignation,
                                                  fcq.MdocJustinNumberSet, fcq.PhysicalFileIdSet));
 }
        private List <Task <CivilFileDetailResponse> > CivilFileDetailTasks(List <string> fileIds)
        {
            var fileDetailTasks = new List <Task <CivilFileDetailResponse> >();

            foreach (var fileId in fileIds)
            {
                async Task <CivilFileDetailResponse> FileDetails() => await _filesClient.FilesCivilGetAsync(_requestAgencyIdentifierId, _requestPartId, _applicationCode, fileId);

                fileDetailTasks.Add(_cache.GetOrAddAsync($"CivilFileDetail-{fileId}-{_requestAgencyIdentifierId}", FileDetails));
            }

            return(fileDetailTasks);
        }