private static List<Task<Uri>> PushFilesToReducers(Dictionary<string, Uri> keysAndUris, IStorage workerStorage) { var pushFileTasks = new List<Task<Uri>>(); var regex = new Regex(string.Format("^" + Core.Properties.Settings.Default.MapOutputFileName + "$", @"(?<Key>.+)", "[0-9]+", RegexExtensions.GuidRegexString)); var uris = workerStorage.ListFiles(); foreach (var uri in uris) { var fileName = workerStorage.GetFileName(uri); if (regex.IsMatch(fileName)) { var key = regex.Match(fileName).Groups["Key"].Value; if (keysAndUris.ContainsKey(key)) { pushFileTasks.Add(PushFileToReducer(keysAndUris, workerStorage, fileName, key)); } } } return pushFileTasks; }