Exemple #1
0
        public static Boolean ObjectUpdateDB(KBObject obj)
        {
            KBModel          model          = obj.Model;
            IList <KBObject> tableUpdInsDel = (from r in model.GetReferencesFrom(obj.Key, LinkType.UsedObject)
                                               where r.ReferenceType == ReferenceType.WeakExternal // las referencias a tablas que agrega el especificador son de este tipo
                                               where (ReferenceTypeInfo.HasUpdateAccess(r.LinkTypeInfo) || ReferenceTypeInfo.HasDeleteAccess(r.LinkTypeInfo) || ReferenceTypeInfo.HasInsertAccess(r.LinkTypeInfo))
                                               select model.Objects.Get(r.From)).ToList();

            return(tableUpdInsDel.Count > 0);
        }
Exemple #2
0
        private static List <string> MostReferencedInFolder(Table tbl)
        {
            IOutputService output = CommonServices.Output;
            List <string>  list   = new List <string>();

            foreach (EntityReference refe in tbl.GetReferencesTo())
            {
                KBObject objRef = KBObject.Get(tbl.Model, refe.From);
                if (objRef != null)
                {
                    bool read, insert, update, delete, isBase;

                    ReferenceTypeInfo.ReadTableInfo(refe.LinkTypeInfo, out read, out insert, out update, out delete, out isBase);

                    string updated = (update || delete || insert) ? "UPDATED" : "";

                    if (objRef.Parent is Folder)
                    {
                        list.Add("FOLDER:" + objRef.Parent.Name + " |  " + updated);
                    }
                    if (objRef.Parent is Module)
                    {
                        list.Add("MODULE:" + objRef.Parent.Name + " |  " + updated);
                    }
                }
            }
            output.AddLine(" ");
            output.AddLine("============> " + tbl.Name);

            list.Sort();
            foreach (string s in list)
            {
                output.AddLine(s);
            }
            return(list);
        }
Exemple #3
0
        private void buttonLoadTables_Click(object sender, EventArgs e)

        {
            IKBService kbserv  = UIServices.KB;
            KBModel    kbmodel = kbserv.CurrentModel;
            //Create a New DataTable to store the Data
            DataTable Tables = new DataTable("Tables");
            //Create the Columns in the DataTable
            DataColumn c0 = new DataColumn("Name");
            DataColumn c1 = new DataColumn("Module");

            System.Type typeInt32 = System.Type.GetType("System.Int32");
            DataColumn  c2        = new DataColumn("#Updates", typeInt32);

            DataColumn c3 = new DataColumn("#Readers", typeInt32);
            DataColumn c4 = new DataColumn("#Inserts", typeInt32);
            DataColumn c5 = new DataColumn("#Total", typeInt32);

            //Add the Created Columns to the Datatable

            Tables.Columns.Add(c0);
            Tables.Columns.Add(c1);
            Tables.Columns.Add(c2);
            Tables.Columns.Add(c3);
            Tables.Columns.Add(c4);
            Tables.Columns.Add(c5);
            //Create 3 rows
            DataRow row;

            foreach (KBObject obj in kbserv.CurrentModel.Objects.GetAll())
            {
                if (obj is Table)
                {
                    row           = Tables.NewRow();
                    row["Name"]   = obj.Name;
                    row["Module"] = ModulesHelper.ObjectModule(obj);

                    IList <KBObject> updaters = (from r in kbmodel.GetReferencesTo(obj.Key, LinkType.UsedObject)
                                                 where r.ReferenceType == ReferenceType.WeakExternal // las referencias a tablas que agrega el especificador son de este tipo
                                                 where ReferenceTypeInfo.HasUpdateAccess(r.LinkTypeInfo)
                                                 select kbmodel.Objects.Get(r.From)).ToList();


                    row["#Updates"] = updaters.Count;

                    IList <KBObject> readers = (from r in kbmodel.GetReferencesTo(obj.Key, LinkType.UsedObject)
                                                where r.ReferenceType == ReferenceType.WeakExternal // las referencias a tablas que agrega el especificador son de este tipo
                                                where ReferenceTypeInfo.HasReadAccess(r.LinkTypeInfo)
                                                select kbmodel.Objects.Get(r.From)).ToList();

                    row["#Readers"] = readers.Count;

                    IList <KBObject> inserts = (from r in kbmodel.GetReferencesTo(obj.Key, LinkType.UsedObject)
                                                where r.ReferenceType == ReferenceType.WeakExternal // las referencias a tablas que agrega el especificador son de este tipo
                                                where ReferenceTypeInfo.HasInsertAccess(r.LinkTypeInfo)
                                                select kbmodel.Objects.Get(r.From)).ToList();
                    row["#Inserts"] = inserts.Count;
                    row["#Total"]   = updaters.Count + readers.Count + inserts.Count;
                    Tables.Rows.Add(row);
                }
            }

            DataGridViewColumn c6 = dataGridTables.Columns.GetLastColumn(DataGridViewElementStates.Frozen, DataGridViewElementStates.None);

            dataGridTables.DataSource = Tables;
            dataGridTables.Sort(c6, ListSortDirection.Descending);
        }