Example #1
0
        public static Form GetEdit(DataBase.ISTable SubTable, int Width, bool Virtual)
        {
            var UEF = new Edit_Form(SubTable, Width, Virtual);

            var Enabled = T.User.Rows.Get_UnShow <uint>(data.UserID, C.User.UType) == (uint)data.UType.Admin;

            UEF.AddControl(new Edit_Form.Inputs_class(UEF, C.User.Login));
            UEF.AddControl(new Edit_Form.Inputs_class(UEF, C.User.Pass, true, null, true));
            UEF.AddControl(new Edit_Form.RelationCombo_class(UEF, C.User.UType, Enabled));
            UEF.AddControl(new Edit_Form.Inputs_class(UEF, C.User.Mail));
            UEF.AddControl(new Edit_Form.Inputs_class(UEF, C.User.Job));
            UEF.AddControl(new Edit_Form.Inputs_class(UEF, C.User.SureName));
            UEF.AddControl(new Edit_Form.Inputs_class(UEF, C.User.Name));
            UEF.AddControl(new Edit_Form.Inputs_class(UEF, C.User.Patronymic));

            if (Enabled)
            {
                UEF.AddControl(new Edit_Form.Inputs_class(UEF, C.User.PCName));
                UEF.AddControl(new Edit_Form.Inputs_class(UEF, C.User.PCUser));
            }

            UEF.AddControl(C.User.CPeriod);

            UEF.AddControl(new Edit_Form.Inputs_class(UEF, C.User.IsHere, Enabled));
            UEF.AddControl(new Edit_Form.Inputs_class(UEF, C.User.Enabled, Enabled));

            return(UEF);
        }
Example #2
0
        public SynchTable(DataBase.ISTable Table)
        {
            this.Table = Table;

            if (!RelationColumnExist(Table.Parent, "SPool"))
            {
                this.Table.Parent.Columns.AddRelation(T.SPool.GetColumn(C.SPool.Date), false, false);
            }
        }
Example #3
0
        void GetAutoForm(DataBase.ISTable GetValue)
        {
            if ((bool)LoadNew_check.IsChecked)
            {
                GetValue.QUERRY(DataBase.State.None).SHOW.DO();
            }

            GetValue.GetAutoForm(AutoForm.ShowType.Admin).ShowDialog();
        }
Example #4
0
        void GetAutoForm(DataBase.ISTable SubTable)
        {
            if (LoadNew_check.Checked)
            {
                if (DeletedToo_check.Checked)
                {
                    SubTable.QUERRY(DataBase.State.None).SHOW.DO();
                }
                else
                {
                    SubTable.QUERRY().SHOW.DO();
                }
            }

            SubTable.GetAutoForm(AutoForm.ShowType.Admin).ShowDialog();
        }
Example #5
0
        public AdminPanel()
        {
            InitializeComponent();

            RCache.Marks = new RCache.Marks_class();
            RCache.Marks.Update();

            RCache.PSG     = new RCache.PSG_class();
            RCache.Volumes = new RCache.Volumes_class();

            SubTables = new DataBase.ISTable[data.T1.Tables.Count];

            for (int i = 0; i < SubTables.Length; i++)
            {
                var Table = data.T1.Tables[i];

                if (Table.GetSubTable.Count == 0)
                {
                    SubTables[i] = Table.CreateSubTable();
                }
                else
                {
                    SubTables[i] = Table.GetSubTable[0];
                }
            }

            Array.Sort(SubTables, (it1, it2) =>
            {
                var ret1 = it1.Parent.DataSource.Type.CompareTo(it2.Parent.DataSource.Type);

                if (ret1 == 0)
                {
                    return(it1.Name.CompareTo(it2.Name));
                }
                else
                {
                    return(ret1);
                }
            });

            {
                int Y, M;
                ATMisc.GetYearMonthFromYM(data.User <int>(C.User.YM), out Y, out M);
                Period_Box.Text = M.ToString() + '.' + Y.ToString();
            }
        }
Example #6
0
        private static bool IsInUTable(DataBase.ISTable uTable, string tableName)
        {
            bool result = false;

            for (int i = 0; i < uTable.Rows.Count; i++)
            {
                var uTableName = uTable.Rows.Get <String>(i, C.UTable.Name);

                if (String.Equals(uTableName, tableName, StringComparison.InvariantCultureIgnoreCase))
                {
                    result = uTable.Rows.Get <bool>(i, C.UTable.Use);
                    break;
                }
            }

            return(result);
        }
Example #7
0
        /// <summary>Обновить список таблиц синхронизации</summary>
        /// <param name="UTable"></param>
        public void Invalidate(DataBase.ISTable UTable)
        {
            UTable.QUERRY().SHOW.DO();

            var UTableList = new List <UTable>();

            _uTable = UTable;

            for (int i = 0; i < DataBase.Tables.Count; i++)
            {
                if (DataBase.Tables[i].Name.ToLower() != _sPool.Parent.Name.ToLower() &&
                    DataBase.Tables[i].Name.ToLower() != UTable.Parent.Name.ToLower() &&
                    (DataBase.Tables[i].RemoteType != DataBase.RemoteType.Local || DataBase.type == DataBase.RemoteType.Local))
                {
                    UTableList.Add(new UTable(this, DataBase.Tables[i].CreateSubTable(false)));
                }
            }

            this.UTables = UTableList.ToArray();
        }
Example #8
0
        private void DeleteRow(TabItem TI, DataBase.ISTable Table, uint ID)
        {
            if (TI.ContextMenu == null)
            {
                TI.ContextMenu = new ContextMenu();
            }
            MenuItem Delete = new MenuItem();

            TI.ContextMenu.Items.Add(Delete);
            Delete.Header = "Удалить запись";
            Delete.Click += (sender, e) =>
            {
                selectThisTC = ThisTC.SelectedIndex;
                if (MyTools.DeleteRowsByID(Table, true, ID))
                {
                    DrawClient();
                    DrawObject();
                    ThisTC.SelectedIndex = selectThisTC;
                }
            };
        }
Example #9
0
        public AdminPanel()
        {
            InitializeComponent();
            InstructionsMessage_Class.LoadInstructions(ThisMenu, data.ETypeInstruction.Admin);

            SubTables = new DataBase.ISTable[data.T1.Tables.Count];

            for (int i = 0; i < SubTables.Length; i++)
            {
                var Table = data.T1.Tables[i];

                if (Table.GetSubTable.Count == 0)
                {
                    SubTables[i] = Table.CreateSubTable();
                }
                else
                {
                    SubTables[i] = Table.GetSubTable[0];
                }
            }
            SubTables = SubTables.OrderBy(x => x.Parent.DataSource.Type).ThenBy(x => x.Name).ToArray();
        }
Example #10
0
        public UTable(SynchPoolManager Parent, DataBase.ISTable Table)
        {
            this._parent = Parent;
            this.Table   = Table;

            if (!RelationColumnExist(this.Table.Parent, "SPool"))
            {
                this.Table.Parent.Columns.AddRelation(T.SPool.GetColumn(C.SPool.Date), false, false);
            }

            this._id = 0;

            var tableName = Table.Parent.Name;

            if (_uTable == null)
            {
                _uTable = Parent.DataBase.Tables.First(x => x.Name == "UTable").CreateSubTable(false);
                _uTable.QUERRY().SHOW.DO();
            }

            for (int i = 0; i < _uTable.Rows.Count; i++)
            {
                var uTableName = _uTable.Rows.Get <string>(i, C.UTable.Name);

                if (String.Equals(tableName, uTableName, StringComparison.InvariantCultureIgnoreCase))
                {
                    this._id = _uTable.Rows.GetID(i);

                    if (this.Use)
                    {
                        this.Table.Parent.Rows.SetValue += SetPoolAction;
                    }

                    break;
                }
            }
        }
Example #11
0
        private Row[] ParseRows(StringReader stringReader, IEnumerable <string> columns, DataBase.ISTable table)
        {
            var rows = new List <Row>();

            var columnArray = columns.ToArray();

            while (stringReader.Peek() >= 0)
            {
                var line = stringReader.ReadLine();

                var items = line.Split(new string[] { _separator }, StringSplitOptions.None);

                if (!items.Any() || items.Length < 3)
                {
                    break;
                }

                var values = new object[table.Parent.Columns.Count];

                var id    = uint.Parse(items[0]);
                var inUse = (DataBase.State)Enum.Parse(typeof(DataBase.State), items[1], true);

                for (int i = 2; i < columnArray.Length; i++)
                {
                    var columnName = columnArray[i];

                    var column = table.Parent.GetColumn(columnName);

                    var item = items[i];

                    var value = ParseField(column, item);

                    values[column.Index] = value;
                }

                rows.Add(new Row(id, inUse, values));
            }

            return(rows.ToArray());
        }
Example #12
0
 protected IEnumerable <ModelT> getModels(DataBase.ISTable table)
 {
     return(getModels(((DataBase.table.SubTable)table).ShowRow));
 }
Example #13
0
        public static bool SaveToDB(DataBase.ISTable table, uint id, DataBase.State state, object[] values)
        {
            //искать и заменять по индексерам полей неполучится, т.к. записи приходят уже измененные и невозможно определить чем оно там было до изменения
            //измененная запись придет в своём измененном виде
            //если происходят многократные изменения ключевых полей, тогда хреново, т.к. будут приходить многократные дубликаты с измененными ключевыми полями

            var RowExist = (bool)table.QUERRY(DataBase.State.None).EXIST.WHERE.ID(id).DO()[0].Value;

            if (RowExist)
            {
                var Set = table.QUERRY(DataBase.State.None).SET;

                switch (state)
                {
                case DataBase.State.Deleted:
                    Set.Delete();
                    break;

                case DataBase.State.Normal:
                    Set.UnDelete();
                    break;
                }

                try
                {
                    DataBase.ATSettings.AllowQuerryAutoConvertTypes = true;

                    for (int i = 0; i < values.Length; i++)
                    {
                        if (values[i] != null)
                        {
                            Set.C(i, values[i]);
                        }
                    }

                    Set.WHERE.ID(id).DO();
                }
                catch (Exception ex)
                {
                    DataBase.ATSettings.AllowQuerryAutoConvertTypes = false;

                    if (MessageBox.Show("В процессе добавления записи номер " + id.ToString() + " возникла ошибка:" + ex.Message.ToString() + "\nВы хотите продолжить загрузку?", "Ошибка", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.No)
                    {
                        return(false);
                    }
                }

                DataBase.ATSettings.AllowQuerryAutoConvertTypes = false;
            }
            else
            {
                try
                { return(table.Rows.Add(id, values, state)); }
                catch (Exception ex)
                {
                    if (MessageBox.Show("В процессе добавления записи номер " + id.ToString() + " возникла ошибка:" + ex.Message.ToString() + "\nВы хотите продолжить загрузку?", "Ошибка", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.No)
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Example #14
0
 private void AdderMenu(TextBlock tb, DataBase.ISTable Table, params KeyValuePair <int, object>[] Values)
 {
     AdderMenuWithDefaultKeys(tb, Table, new KeyValuePair <int, object> [0], new KeyValuePair <int, object> [0], Values);
 }
Example #15
0
        private void AdderMenuWithDefaultKeys(TextBlock tb, DataBase.ISTable table
                                              , KeyValuePair <int, object>[] keys
                                              , KeyValuePair <int, object>[] updateKeys
                                              , params KeyValuePair <int, object>[] values)
        {
            MenuItem MI = new MenuItem();

            MI.Header = $"Добавить \"{table.Parent.AlterName}\"";
            var t = tb;

            MI.Click += (sender, e) =>
            {
                selectThisTC = ThisTC.SelectedIndex;
                try
                {
                    var tempTable = table.Parent.CreateSubTable(false);

                    if (keys.Any())
                    {
                        {
                            var query = tempTable.QUERRY().SHOW.WHERE;

                            foreach (var value in keys)
                            {
                                if (value.Key < 0)
                                {
                                    var tmp = query.ID((uint)value.Value).AND;
                                }
                                else
                                {
                                    var tmp = query.C(value.Key, value.Value).AND;
                                }
                            }

                            ((DataBase.IDo)query).DO();
                        }
                    }

                    if (tempTable.Rows.Count > 0)
                    {
                        foreach (var updateKey in updateKeys)
                        {
                            tempTable.Rows.Set(0, updateKey.Key, updateKey.Value);
                        }

                        table.Rows.Add(tempTable.Rows.GetID(0));
                    }
                    else
                    {
                        MyTools.AddRowFromTable(table, values);
                    }
                }
                catch
                {
                    MessageBox.Show("Вы пытаетесь добавить дубликат записи!");
                    return;
                }

                var sc = new MyTools.C_SelectControl(t);

                DrawClient();
                DrawObject();
                sc.ReSelect(t);

                ThisTC.SelectedIndex = selectThisTC;
            };

            tb.ContextMenu = new ContextMenu();
            tb.ContextMenu.Items.Add(MI);
        }
Example #16
0
        /// <summary>Добавить не кеширующую таблицу</summary>
        static bool AddRemote(StartupLogo_Window.Loading_class Loading, string Name, string AlterName, ref DataBase.ITable Table, ref DataBase.ISTable SubTable, AddCols_delegate AddCols, bool Dedicate)
        {
            if (Loading != null)
            {
                Loading.LoadingComment = Name;
            }

            if (Table != null)
            {
                throw new Exception("Таблица уже существует!");
            }

            Table = data.T1.Tables.Add(Name, AlterName);
            AddCols(Table);
            Table.AutoSave(Dedicate, DataBase.TypeOfTable.Remote);

            if (data.T1.type == DataBase.RemoteType.Local || Table.Parent.DataSourceEnabled)
            {
                SubTable = Table.CreateSubTable();
                return(true);
            }
            else
            {
                if (Loading != null)
                {
                    Loading.LoadingComment = "Ошибка";
                }
                return(false);
            }
        }
Example #17
0
        public queryTable(DataBase.ISTable table)
        {
            this.Table = table;

            Operations = new List <KeyValuePair <EOperation, queryTableColumn> >();
        }
Example #18
0
 public LoadTable(DataBase.ISTable Table, string FileName)
 {
     this.Table    = Table;
     this.FileName = FileName;
 }
Example #19
0
        static bool AddSynch(DataBase db, StartupLogo_Form.Loading_class Loading, string Name, string AlterName, ref DataBase.ITable Table, ref DataBase.ISTable SubTable, AddCols_delegate AddCols, bool Dedicate)
        {
            if (Loading != null)
            {
                Loading.LoadingComment = Name;
            }

            if (CheckTablesExist && Table != null)
            {
                throw new Exception("Таблица уже существует!");
            }

            Table = db.Tables.Add(Encoding.GetEncoding(866), Name, AlterName);
            AddCols(Table);

            Table.AutoSave(Dedicate, DataBase.TypeOfTable.Combine);

            if (Table.Parent.DataSourceEnabled || Table.Parent.type == DataBase.RemoteType.Local)
            {
                SubTable = Table.CreateSubTable();

                SubTable.QUERRY().SHOW.DO();
                return(true);
            }
            else
            {
                if (Loading != null)
                {
                    Loading.LoadingComment = "Ошибка";
                }
                return(false);
            }
        }