private void SaveYTD(bool saveas = false) { if (Ytd == null) { return; } if (!(ExploreForm?.EditMode ?? false)) { saveas = true; } var isinrpf = false; var rpfFileEntry = Ytd.RpfFileEntry; if (rpfFileEntry == null) { saveas = true; } else { if (rpfFileEntry?.Parent != null) { if (!saveas) { isinrpf = true; if (!rpfFileEntry.Path.ToLowerInvariant().StartsWith("mods")) { if (MessageBox.Show("This file is NOT located in the mods folder - Are you SURE you want to save this file?\r\nWARNING: This could cause permanent damage to your game!!!", "WARNING: Are you sure about this?", MessageBoxButtons.YesNo) != DialogResult.Yes) { saveas = true;//that was a close one isinrpf = false; } } } } else if (!string.IsNullOrEmpty(rpfFileEntry?.Path)) { isinrpf = false; //saving direct to filesystem in RPF explorer... } else { saveas = true;//this probably shouldn't happen } } var data = Ytd.Save(); if (saveas) //save direct to filesystem in external location { SaveYTDFileDialog.FileName = FileName; if (SaveYTDFileDialog.ShowDialog() != DialogResult.OK) { return; } string fpath = SaveYTDFileDialog.FileName; File.WriteAllBytes(fpath, data); } else if (!isinrpf) //save direct to filesystem in RPF explorer { File.WriteAllBytes(rpfFileEntry.Path, data); ExploreForm?.RefreshMainListViewInvoke(); //update the file details in explorer... } else //save to RPF... { if (!(ExploreForm?.EnsureRpfValidEncryption(rpfFileEntry.File) ?? false)) { MessageBox.Show("Unable to save file, RPF encryption needs to be OPEN for this operation!"); return; } Ytd.RpfFileEntry = RpfFile.CreateFile(rpfFileEntry.Parent, rpfFileEntry.Name, data); ExploreForm?.RefreshMainListViewInvoke(); //update the file details in explorer... } Modified = false; UpdateStatus("YTD file saved successfully at " + DateTime.Now.ToString()); UpdateFormTitle(); }
/// <summary> /// Fills the column choice datagrid with the current values, /// that are stored in the local column parameters /// /// </summary> /// <returns>void</returns> public void FillColumnGrid() { DataTable ColumnTab; DataRow RowContent; DataRow RowAppliesTo; DataRow RowYTD; String AppliesTo; System.Int32 Column1; System.Int32 Column2; bool ShowAppliesTo; System.Int32 RowCounter; TVariant Ytd; ColumnTab = new System.Data.DataTable(); /* create columns */ for (int Counter = 0; Counter <= FColumnParameters.Get("MaxDisplayColumns").ToInt() - 1; Counter += 1) { ColumnTab.Columns.Add("Column " + Convert.ToString(Counter + 1)); } /* first row: name of calculation */ RowContent = ColumnTab.NewRow(); /* second row: if necessary with number of involved columns */ RowAppliesTo = ColumnTab.NewRow(); /* third row: Ytd */ RowYTD = ColumnTab.NewRow(); ShowAppliesTo = false; for (int Counter = 0; Counter <= FColumnParameters.Get("MaxDisplayColumns").ToInt() - 1; Counter += 1) { String Calculation = FColumnParameters.GetOrDefault("param_calculation", Counter, new TVariant(cmbColumnRelation.GetSelectedString())).ToString(); AppliesTo = ""; if (cmbColumnRelation.FindString(Calculation) != -1) { Column1 = FColumnParameters.Get("FirstColumn", Counter).ToInt(); Column2 = FColumnParameters.Get("SecondColumn", Counter).ToInt(); AppliesTo = AppliesTo + " (Column " + Convert.ToString(Column1 + 1); if (Column2 != -1) { AppliesTo = AppliesTo + " and " + Convert.ToString(Column2 + 1); } AppliesTo = AppliesTo + ")"; ShowAppliesTo = true; } else if (FColumnParameters.Exists("param_selected_ledgers", Counter)) { AppliesTo = AppliesTo + FColumnParameters.Get("param_selected_ledgers", Counter).ToString(); ShowAppliesTo = true; } RowAppliesTo[Counter] = AppliesTo; RowContent[Counter] = Calculation; /* YTD */ Ytd = FColumnParameters.Get("param_ytd", Counter); if (Ytd.IsZeroOrNull()) { RowYTD[Counter] = ""; } else { if (Ytd.ToBool()) { RowYTD[Counter] = "YTD"; } else { RowYTD[Counter] = "non-YTD"; } } } RowCounter = 0; ColumnTab.Rows.InsertAt(RowContent, RowCounter); if (ShowAppliesTo) { RowCounter = RowCounter + 1; ColumnTab.Rows.InsertAt(RowAppliesTo, RowCounter); } RowCounter = RowCounter + 1; ColumnTab.Rows.InsertAt(RowYTD, RowCounter); grdColumns.Columns.Clear(); for (int Counter = 0; Counter <= FColumnParameters.Get("MaxDisplayColumns").ToInt() - 1; Counter += 1) { grdColumns.AddTextColumn("Column " + Convert.ToString(Counter + 1), ColumnTab.Columns[Counter]); } grdColumns.DataSource = new DevAge.ComponentModel.BoundDataView(new DataView(ColumnTab)); grdColumns.DataSource.AllowEdit = false; grdColumns.DataSource.AllowNew = false; grdColumns.DataSource.AllowDelete = false; grdColumns.AutoSizeCells(); TUC_ColumnHelper.LoadDataToGrid(ref grdColumns, ref ColumnTab); }