public async Task <IList <UploadedFile> > GetFiles() { var fileIds = from fileInfo in this._fileStore.GetFiles() let plainName = Path.GetFileNameWithoutExtension(fileInfo.Name) where plainName != null && FileIdentifier.IsValid(plainName) select FileIdentifier.FromString(plainName); List <UploadedFile> uploadedFiles = new List <UploadedFile>(); foreach (FileIdentifier id in fileIds.Distinct()) { UploadedFile file = await this.GetFileInternal(id).ConfigureAwait(false); if (file != null) { uploadedFiles.Add(file); } } return(uploadedFiles); }