Пример #1
0
        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();
        }
Пример #2
0
        /// <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);
        }