internal static LoadOrSaveResult Save( KontoutdragInfoForSave kontoutdragInfoForSave, SortedList kontoEntries, SaldoHolder saldoHolder) { try { // If nothing to save, return if (kontoEntries == null || kontoEntries.Count == 0) { return new LoadOrSaveResult(); } var logArray = GetTopRowWithHeaders(saldoHolder); var logThis = GetWhatToLogWithHeaders(ProgramSettings.BankType, logArray, kontoEntries); ReIndexKontoentriesToLatestOnTop(kontoEntries, logThis); // Gör någon backup el. likn. för att inte förlora data. Backupa dynamiskt. Så att om man skickar in en fil så backas den upp istället för huvudfilen...men de e rätt ok att backa huvudfilen BackupOrginialFile( "Before.Save", kontoutdragInfoForSave.excelFileSavePath, kontoutdragInfoForSave.excelFileSavePathWithoutFileName, kontoutdragInfoForSave.excelFileSaveFileName); // spara över gammalt, innan skrevs det på sist Logger.WriteToWorkBook( kontoutdragInfoForSave.excelFileSavePath, kontoutdragInfoForSave.sheetName, true, logThis); return new LoadOrSaveResult { skippedOrSaved = logThis.Count - 1, somethingLoadedOrSaved = false }; } catch (Exception savExcp) { MessageBox.Show(@"Error: " + savExcp.Message); return new LoadOrSaveResult(); } }
private void Save() { var statusText = toolStripStatusLabel1.Text; var kontoutdragInfoForSave = new KontoutdragInfoForSave { excelFileSaveFileName = Filerefernces._excelFileSaveFileName, excelFileSavePath = Filerefernces._excelFileSavePath, excelFileSavePathWithoutFileName = Filerefernces.ExcelFileSavePathWithoutFileName, sheetName = SheetName }; var saveResult = SaveKonton.Save(kontoutdragInfoForSave, kontoEntriesHolder.KontoEntries, kontoEntriesHolder.SaldoHolder); somethingChanged = saveResult.somethingLoadedOrSaved; // somethingChanged = false;//Precis sparat, så här har inget hunnit ändras statusText += "Saving done, saved entries; " + saveResult.skippedOrSaved; // Räkna inte överskriften, den skrivs alltid om // toolStripStatusLabel1.Text = "Saving done, saved entries; " + (logThis.Count - 1);//Räkna inte överskriften, den skrivs alltid om // Fråga om man vill öppna Excel if (MessageBox.Show(@"Open budget file (wait a litte while first)?", @"Open file", MessageBoxButtons.YesNo) == DialogResult.Yes) { ExcelOpener.LoadExcelFileInExcel(kontoutdragInfoForSave.excelFileSavePath); } toolStripStatusLabel1.Text = statusText; }