Esempio n. 1
0
        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;
        }