private IEnumerable <IResult> InnerUpload(BatchMode mode) { if (!CanUpload) { yield break; } var haveOrders = Address.ActiveOrders().Any(); if (haveOrders && !Confirm("После успешной отправки дефектуры будут заморожены текущие заказы.\r\n" + "Продолжить?")) { yield break; } var dialog = new OpenFileResult(); //если установить директорию на не существующем диске диалог не будет отображен if (Directory.Exists(lastUsedDir)) { dialog.Dialog.InitialDirectory = lastUsedDir; } yield return(dialog); lastUsedDir = Path.GetDirectoryName(dialog.Dialog.FileName) ?? lastUsedDir; foreach (var result in Shell.Batch(dialog.Dialog.FileName, mode)) { yield return(result); } }