예제 #1
0
        private IDBView ClaimPermission(IDBSchema sch)
        {
            var ret = sch.AddView("ClaimPermission", new DBViewDescriptor()
            {
                Body =
                    @"SELECT 
	ID = newid(), t.ClaimID, t.PrincipalID, CanExecute = CAST(MAX(CAST(t.CanExecute AS INT)) AS BIT)
FROM
	(
		SELECT 
			PrincipalID, ClaimID, CanExecute
		FROM
			Common.PrincipalPermission pp

		UNION ALL

		SELECT 
			phr.PrincipalID, rp.ClaimID, rp.CanExecute
		FROM
			Common.RolePermission rp
			INNER JOIN Common.PrincipalHasRole phr ON rp.RoleID = phr.RoleID
	) t
GROUP BY
	t.PrincipalID, t.ClaimID"    ,
                WithSchemaBinding = false
            },
                                  new DBRevision(new DateTime(2016, 6, 10), 4, eDBRevisionType.Create));

            return(ret);
        }
예제 #2
0
        private IDBTable tblCases(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2016, 9, 19), 0, eDBRevisionType.Create);
            var ret = DBMacros.AddDBTableIDNaziv("tblCases", sch, rev);

            return(ret);
        }
예제 #3
0
        private IDBTable RolePermission(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2016, 6, 10), 0, eDBRevisionType.Create);
            var ret = DBMacros.AddDBTableID("RolePermission", sch, rev);

            var fld = DBMacros.AddForeignKeyFieldID("RoleID", true, ret, sch.Name + ".Role",
                                                    new DBRevision(new DateTime(2016, 6, 10), 1, eDBRevisionType.Create));

            fld.AddRevision(new DBRevision(new DateTime(2016, 6, 10), 2, eDBRevisionType.Modify),
                            new DBFieldDescriptor(fld.Descriptor)
            {
                Nullable = false
            });

            DBMacros.AddForeignKeyFieldID("ClaimID", true, ret, sch.Name + ".Claim",
                                          new DBRevision(new DateTime(2016, 6, 10), 1, eDBRevisionType.Create));

            ret.AddField("CanExecute", DBMacros.DBFieldBitDescriptor(false),
                         new DBRevision(new DateTime(2016, 6, 10), 2, eDBRevisionType.Create));

            ret.AddIndex(new DBIndexDescriptor(new List <string>()
            {
                "RoleID", "ClaimID"
            }, new List <string>()
            {
                "CanExecute"
            })
            {
                Unique = true
            },
                         new DBRevision(new DateTime(2016, 6, 10), 3, eDBRevisionType.Create));

            return(ret);
        }
예제 #4
0
        public override void CreateTimeLine()
        {
            var rev = new DBRevision(new DateTime(2016, 6, 10), 0, eDBRevisionType.Create);

            IDBSchema sch = AddSchema(DefaultSchemaName, new DBSchemaDescriptor());

            if (DefaultSchemaName != "dbo")
            {
                sch.AddRevision(new DBRevision(rev));
            }

            UserDetail(sch);

            Organization(sch);
            Line(sch);
            LineEmployee(sch);
            LineEmployeeInvited(sch);
            LineEmployeeAccepted(sch);
            Country(sch);
            LineLocation(sch);
            LinePhoto(sch);
            BusinessDay(sch);
            LineBusinessHour(sch);
            LineStatus(sch);

            ClearDbForTesting.Create(sch);

            Tasks(sch);
        }
예제 #5
0
        private void Always(IDBSchema sch)
        {
            sch.AddRevision(new DBRevision(new DateTime(2016, 6, 10), 0, eDBRevisionType.AlwaysExecuteTask, UpdateStatistics));

            //sch.AddView("testAlways", new DBViewDescriptor() { Body = "SELECT Broj = 1", WithSchemaBinding = false },
            //    new DBRevision(new DateTime(2016, 6, 29), 0, eDBRevisionType.AlwaysExecuteTask));
        }
        public override void CreateTimeLine()
        {
            IDBSchema sch = AddSchema("dbo", new DBSchemaDescriptor());

            Drzava(sch);
            Grad(sch);
        }
예제 #7
0
        private void CreateTimeLine(IDBModule module)
        {
            IDBSchema sch = module.AddSchema(module.DefaultSchemaName, new DBSchemaDescriptor());

            tblCases(sch);
            vw_cus_cus_CustomView(sch);
        }
예제 #8
0
        private void Initialize(string connectionStringName)
        {
            connectionStringName = string.IsNullOrEmpty(connectionStringName) ? "default" : connectionStringName;

            ConnectionConfig info = SimpleDALConfig.GetConnectionConfig(connectionStringName);
            
            _ConnectionString = info.ConnectionString;

            _Schema = SimpleDALConfig.GetSchemaService(info.ProviderName);

            _IsCustomToken = info.IsCustomToken;

            _Factory = DbProviderFactories.GetFactory(info.ProviderName);

            _ParamToken = _Schema.ParameterToken;

            _Connection = CreateConnection();

            _DalLogger = SimpleDALConfig.GetLogService(info.LoggerName);

            _IsLoggable = info.IsDebug;

            _SessionID = Guid.NewGuid().ToString();

            Info("New Create SimpleDB");
            Debug("Connection Name is: " + connectionStringName);
            Debug("Provider is " + info.ProviderName);
        }
예제 #9
0
        private IDBTable Mjesto(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2016, 7, 8), 1, eDBRevisionType.Create);
            var ret = DBMacros.AddDBTableIDNaziv("Mjesto", sch, rev);

            return(ret);
        }
예제 #10
0
        private IDBTable UserDetail(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2019, 9, 9), 0, eDBRevisionType.Create);
            var ret = DBMacros.AddDBTableID("UserDetail", sch, rev);

            ret.AddConstraint(new DBForeignKeyConstraintDescriptor(new List <string>()
            {
                "ID"
            }, "Common.Principal", new List <string>()
            {
                "ID"
            }),
                              new DBRevision(rev));

            ret.AddField("Username", new DBFieldDescriptor()
            {
                FieldType = new DBFieldTypeNvarchar(), Size = 512, Nullable = false
            },
                         new DBRevision(rev));

            ret.AddConstraint(new DBUniqueConstraintDescriptor("Username"),
                              new DBRevision(rev));

            ret.AddField("Email", new DBFieldDescriptor()
            {
                FieldType = new DBFieldTypeNvarchar(), Size = 512, Nullable = false
            },
                         new DBRevision(rev));

            var fldFullName = ret.AddField("Fullname", new DBFieldDescriptor()
            {
                FieldType = new DBFieldTypeNvarchar(), Size = 512, Nullable = false
            },
                                           new DBRevision(rev));

            fldFullName.AddRevision(new DBRevision(new DateTime(2019, 10, 10), 0, eDBRevisionType.Delete));

            ret.AddField("FirstName", new DBFieldDescriptor()
            {
                FieldType = new DBFieldTypeNvarchar(), Size = 512, Nullable = false
            },
                         new DBRevision(rev));

            ret.AddField("LastName", new DBFieldDescriptor()
            {
                FieldType = new DBFieldTypeNvarchar(), Size = 512, Nullable = false
            },
                         new DBRevision(rev));


            var fldNickName = ret.AddField("Nickname", new DBFieldDescriptor()
            {
                FieldType = new DBFieldTypeNvarchar(), Size = 512, Nullable = false
            },
                                           new DBRevision(rev));

            fldNickName.AddRevision(new DBRevision(new DateTime(2019, 10, 10), 0, eDBRevisionType.Delete));

            return(ret);
        }
예제 #11
0
        private void Tasks(IDBSchema sch)
        {
            sch.AddRevision(new DBRevision(new DateTime(2016, 6, 10), 1, eDBRevisionType.Task, FillAdmin));
            sch.AddRevision(new DBRevision(new DateTime(2016, 6, 10), 2, eDBRevisionType.Task, FillAdmin2));

            sch.AddRevision(new DBRevision(new DateTime(2019, 9, 9), 0, eDBRevisionType.AlwaysExecuteTask, FillAdminRolePermissions));
        }
예제 #12
0
        private void Tasks(IDBSchema sch)
        {
            sch.AddRevision(new DBRevision(new DateTime(2019, 9, 9), 0, eDBRevisionType.AlwaysExecuteTask, FillClaims));
            sch.AddRevision(new DBRevision(new DateTime(2019, 9, 10), 0, eDBRevisionType.AlwaysExecuteTask, FillRoles));
            sch.AddRevision(new DBRevision(new DateTime(2019, 9, 30), 0, eDBRevisionType.AlwaysExecuteTask, FillRolePermissions));

            sch.AddRevision(new DBRevision(new DateTime(2020, 4, 14), 3, eDBRevisionType.AlwaysExecuteTask, FillBusinessDays));
        }
예제 #13
0
        private void CreateTimeLine(IDBModule module)
        {
            IDBSchema sch = module.AddSchema(module.DefaultSchemaName, new DBSchemaDescriptor());

            Drzava(sch);
            Grad(sch);
            Mjesto(sch);
        }
예제 #14
0
        private IDBTable MjestoTroska(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2016, 9, 19), 0, eDBRevisionType.Create);
            var ret = DBMacros.AddDBTableIDNaziv("MjestoTroska", sch, rev);

            //ret.AddRevision(new DBRevision(new DateTime(2016, 6, 28), 0, eDBRevisionType.Task, null, null));

            return(ret);
        }
예제 #15
0
        private IDBTable Grad(IDBSchema sch)
        {
            var ret = sch.AddTable("Grad", new DBTableDescriptor());

            ret.AddField("Active", DBMacros.DBFieldActiveDescriptor(),
                         new DBRevision(new DateTime(2016, 6, 10), 2, eDBRevisionType.Create));

            return(ret);
        }
예제 #16
0
        private IDBTable Drzava(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2016, 6, 10), 0, eDBRevisionType.Create);
            var ret = DBMacros.AddDBTableIDNaziv("Drzava", sch, rev);

            ret.AddRevision(new DBRevision(new DateTime(2016, 6, 28), 0, eDBRevisionType.Task, FillDrzava, null, 150));

            return(ret);
        }
예제 #17
0
        private IDBTable Claim(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2016, 6, 10), 0, eDBRevisionType.Create);
            var ret = DBMacros.AddDBTableID("Claim", sch, rev);

            ret.AddField("Name", DBMacros.DBFieldNazivDescriptor(false), rev);

            return(ret);
        }
예제 #18
0
        private void tblCases(IDBSchema sch)
        {
            IDBTable tblCases = sch.AddTable("tblCases", new DBTableDescriptor());

            tblCases.AddField("Ctx1MinKul_Opis", new DBFieldDescriptor()
            {
                FieldType = new DBFieldTypeNvarchar(), Nullable = true, Size = 512
            },
                              new DBRevision(new DateTime(2016, 9, 19), 1, eDBRevisionType.Create));
        }
예제 #19
0
        private IDBTable Organization(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2020, 4, 14), 0, eDBRevisionType.Create);

            var ret = DBMacros.AddDBTableID("Organization", sch, new DBRevision(rev));

            ret.AddField("Name", DBMacros.DBFieldNazivDescriptor(false), new DBRevision(rev));

            return(ret);
        }
예제 #20
0
        private IDBTable Principal(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2016, 6, 10), 0, eDBRevisionType.Create);
            var ret = DBMacros.AddDBTableID("Principal", sch, rev);

            ret.AddField("Username", DBMacros.DBFieldNazivDescriptor(false), rev);

            ret.AddField("SuperAdmin", DBMacros.DBFieldBitDescriptor(false), rev);

            return(ret);
        }
예제 #21
0
        private string GetColumnSelectors(IDBSchema scheme)
        {
            List <string> inputs = new List <string>();

            for (int i = 0; i < scheme.Columns.Length; i++)
            {
                inputs.Add($"{scheme.Table}.{scheme.Columns[i].ColumnName}");
            }

            return(String.Join(",", inputs.ToArray()));
        }
예제 #22
0
        private IDBTable PrincipalHasRole(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2016, 6, 10), 0, eDBRevisionType.Create);
            var ret = DBMacros.AddDBTableID("PrincipalHasRole", sch, rev);

            DBMacros.AddForeignKeyFieldID("PrincipalID", true, ret, sch.Name + ".Principal",
                                          new DBRevision(new DateTime(2016, 6, 10), 1, eDBRevisionType.Create));
            DBMacros.AddForeignKeyFieldID("RoleID", true, ret, sch.Name + ".Role",
                                          new DBRevision(new DateTime(2016, 6, 10), 1, eDBRevisionType.Create));

            return(ret);
        }
예제 #23
0
        public override void CreateTimeLine()
        {
            var rev = new DBRevision(new DateTime(2016, 6, 10), 0, eDBRevisionType.Create);

            IDBSchema sch = AddSchema(DefaultSchemaName, new DBSchemaDescriptor());

            if (DefaultSchemaName != "dbo")
            {
                sch.AddRevision(new DBRevision(rev));
            }

            MjestoTroska(sch);
        }
예제 #24
0
        private IDBTable LineEmployee(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2020, 4, 14), 2, eDBRevisionType.Create);

            var ret = DBMacros.AddDBTableID("LineEmployee", sch, new DBRevision(rev));

            DBMacros.AddForeignKeyFieldID("LineID", false, ret, sch.Name + ".Line",
                                          new DBRevision(rev));

            DBMacros.AddForeignKeyFieldID("EmployeeID", false, ret, sch.Name + ".UserDetail",
                                          new DBRevision(rev));

            return(ret);
        }
예제 #25
0
        private IDBTable BusinessDay(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2020, 4, 14), 0, eDBRevisionType.Create);

            var ret = DBMacros.AddDBTableID("BusinessDay", sch, new DBRevision(rev));

            ret.AddField("ShortName", DBMacros.DBFieldNazivDescriptor(false), new DBRevision(rev));
            ret.AddField("FullName", DBMacros.DBFieldNazivDescriptor(false), new DBRevision(rev));

            ret.AddConstraint(new DBUniqueConstraintDescriptor("ShortName"), new DBRevision(rev));
            ret.AddConstraint(new DBUniqueConstraintDescriptor("FullName"), new DBRevision(rev));

            return(ret);
        }
예제 #26
0
        private void Initialize(SimpleTransaction trans)
        {
            _ParamToken = trans.DB.ParameterToken;
            _Factory = trans.DB.Factory;
            _Connection = trans.DB.Connection;
            _Transaction = trans.DB.Transaction;
            _Schema = trans.DB.Schema;
            _DistributeDB = true;

            _IsLoggable = trans.DB._IsLoggable;
            _DalLogger = trans.DB._DalLogger;

            _IsCustomToken = trans.DB.IsCustomToken;

            _SessionID = trans.DB._SessionID;
        }
예제 #27
0
        private IDBTable LinePhoto(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2020, 4, 14), 2, eDBRevisionType.Create);

            var ret = DBMacros.AddDBTableID("LinePhoto", sch, new DBRevision(rev));

            DBMacros.AddForeignKeyFieldID("LineID", false, ret, sch.Name + ".Line",
                                          new DBRevision(rev));

            ret.AddField("PhotoName", DBMacros.DBFieldNazivDescriptor(false),
                         new DBRevision(rev));

            ret.AddField("PhotoUrl", DBMacros.DBFieldLongTextDescriptor(false),
                         new DBRevision(rev));

            return(ret);
        }
예제 #28
0
        private IDBTable Grad(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2016, 6, 10), 0, eDBRevisionType.Create);

            var ret = DBMacros.AddDBTableID("Grad", sch, rev);

            ret.AddField("Naziv", new DBFieldDescriptor()
            {
                Nullable = false, FieldType = new DBFieldTypeNvarchar(), Size = 512
            },
                         new DBRevision(rev));

            DBMacros.AddForeignKeyFieldID("DrzavaID", true, ret, sch.Name + ".Drzava",
                                          new DBRevision(new DateTime(2016, 6, 10), 1, eDBRevisionType.Create));

            return(ret);
        }
예제 #29
0
        public override void CreateTimeLine()
        {
            var rev = new DBRevision(new DateTime(2016, 6, 10), 0, eDBRevisionType.Create);

            IDBSchema sch = AddSchema(DefaultSchemaName, new DBSchemaDescriptor());

            if (DefaultSchemaName != "dbo")
            {
                sch.AddRevision(new DBRevision(rev));
            }

            tblCases(sch);

            var ass = System.Reflection.Assembly.GetExecutingAssembly();

            sch.AddExecuteOnceTask(new DateTime(2016, 9, 21), 0, Framework.Core.Helpers.ReadEmbeddedTextResource(ass, "Resources.CentrixCore.sp_Zbroji_v1.txt"));
        }
 private static void GenerateTemplate_ViewModel(string templateFileName, List<string> tableList, IDBSchema dbSchema, string modelNamespaceVal, string savePath)
 {
     DisplayTemplateName(templateFileName);
     var templateText = TemplateHelper.ReadTemplate(templateFileName);
     foreach (var tableName in tableList)
     {
         var table = dbSchema.GetTableMetadata(tableName);
         if (table.PKs.Count == 0) throw new Exception(string.Format("表{0}:没有设置主键!", tableName));
         Display(tableName, table);
         dynamic viewbag = new DynamicViewBag();
         viewbag.classnameVal = tableName;
         viewbag.namespaceVal = modelNamespaceVal;
         var outputText = TemplateHelper.Parse(TemplateKey.ViewModel, templateText, table, viewbag);
         outputText = TemplateHelper.Clean(outputText, RegexPub.H1());
         FileHelper.Save(string.Format(@"{0}\{1}ViewModel.cs", savePath, viewbag.classnameVal), outputText);
     }
 }
예제 #31
0
        public static IDBObject Create(IDBSchema sch)
        {
            DBStoredProcedure sp = (DBStoredProcedure)sch.AddDBObject("CleanDataForTesting",
                                                                      new DBStoredProcedureDescriptor()
            {
                Parameters    = "",
                Body          = @"
    DELETE FROM Flyinline.UserDetail
	DELETE FROM Common.principalhasrole
	DELETE FROM Common.principal	
",
                ErrorHandling = true
            },
                                                                      new DBRevision(new DateTime(2019, 9, 20), 0, eDBRevisionType.Create));

            return(sp);
        }
예제 #32
0
        public override void CreateTimeLine()
        {
            var rev = new DBRevision(new DateTime(2016, 6, 10), 0, eDBRevisionType.Create);

            IDBSchema sch = AddSchema(DefaultSchemaName, new DBSchemaDescriptor());

            if (DefaultSchemaName != "dbo")
            {
                sch.AddRevision(new DBRevision(rev));
            }

            UserDetail(sch);

            ClearDbForTesting.Create(sch);

            Tasks(sch);
        }
예제 #33
0
        private IDBTable LineLocation(IDBSchema sch)
        {
            var rev = new DBRevision(new DateTime(2020, 4, 14), 2, eDBRevisionType.Create);

            var ret = DBMacros.AddDBTableID("LineLocation", sch, new DBRevision(rev));

            ret.AddField("Longitude", new DBFieldDescriptor()
            {
                Size = 18, Precision = 6, FieldType = new DBFieldTypeDecimal(), DefaultValue = "0", Nullable = false
            },
                         new DBRevision(rev));

            ret.AddField("Latitude", new DBFieldDescriptor()
            {
                Size = 18, Precision = 6, FieldType = new DBFieldTypeDecimal(), DefaultValue = "0", Nullable = false
            },
                         new DBRevision(rev));

            DBMacros.AddForeignKeyFieldID("CountryID", false, ret, sch.Name + ".Country",
                                          new DBRevision(rev));

            ret.AddField("StreetAddress", DBMacros.DBFieldNazivDescriptor(false),
                         new DBRevision(rev));

            ret.AddField("City", DBMacros.DBFieldNazivDescriptor(false),
                         new DBRevision(rev));

            ret.AddField("State", DBMacros.DBFieldNazivDescriptor(true),
                         new DBRevision(rev));

            ret.AddField("ZipCode", DBMacros.DBFieldNazivDescriptor(true),
                         new DBRevision(rev));

            ret.AddConstraint(new DBForeignKeyConstraintDescriptor(new List <string>()
            {
                "ID"
            }, sch.Name + ".Line", new List <string>()
            {
                "ID"
            }),
                              new DBRevision(rev));

            return(ret);
        }