private async Task UploadToStorage(Observer observer, IEnumerable <Match> matches) { foreach (StorageConfig storageConfig in observer.Storage) { IStorage storageProvider = GetStorageProvider(storageConfig.Url); foreach (Match match in matches) { foreach (Document document in match.Meeting.Documents) { string path = Path.Combine(match.Meeting.Source.Name, match.Search.Name, match.Meeting.Date.ToString("yyyy-MM-dd") + "-" + match.Meeting.BoardName); Uri documentUrl = await storageProvider.AddDocument(match.Meeting, document, path).ConfigureAwait(false); } } } }