protected String AskSavePath(SaleDO sale) { bool createSaleFolder = false; if (ApplicationController.UserSettings.CreateSaleFolder == null) { using (var dialog = new CreateSaleFolerDialog()) { createSaleFolder = (dialog.ShowDialog() == DialogResult.Yes); if (dialog.RememberSelection) { ApplicationController.UserSettings.CreateSaleFolder = createSaleFolder; //ApplicationState.GetHandle().Save(); } } } else { createSaleFolder = ApplicationController.UserSettings.CreateSaleFolder.Value; } using (var saveFileDialog = new System.Windows.Forms.SaveFileDialog()) { saveFileDialog.AutoUpgradeEnabled = true; saveFileDialog.CustomPlaces.Add(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\CruiseFiles"); saveFileDialog.InitialDirectory = ApplicationController.UserSettings.CruiseSaveLocation; saveFileDialog.DefaultExt = "cruise"; saveFileDialog.Filter = "Cruise files(*.cruise)|*.cruise"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { string fileName = saveFileDialog.FileName; string dir = System.IO.Path.GetDirectoryName(fileName); ApplicationController.UserSettings.CruiseSaveLocation = dir; if (createSaleFolder) { dir += sale.ToString("\\[SaleNumber] [Name]\\", null); if (!System.IO.Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } return dir + System.IO.Path.GetFileName(saveFileDialog.FileName); } return saveFileDialog.FileName; } return null; } }