Example #1
0
        protected string DbNullAndDefault(TableFieldDefInfo fieldInfo)
        {
            if (fieldInfo == null)
            {
                return(DBConstants.EMPTY_STRING);
            }

            bool bColumnDefault = DbColumnDefault();
            bool bFieldDefault  = (fieldInfo.m_strDefaultValue.Length != 0);

            bool bRequiredDefault = DBPlatform.DefaultBindRequired(fieldInfo.m_lAttributes);
            bool bAutoIncremField = ((fieldInfo.m_lAttributes & DBConstants.dbAutoIncrField) != 0);

            string strFieldNames = DBConstants.EMPTY_STRING;

            if (bColumnDefault)
            {
                if (fieldInfo.m_bRequired && bRequiredDefault)
                {
                    strFieldNames = StringUtils.JoinNonEmpty(" ", strFieldNames, DbTypeDefault(fieldInfo.m_nType));
                }
            }
            if (bAutoIncremField == false)
            {
                if (fieldInfo.m_bRequired)
                {
                    strFieldNames = StringUtils.JoinNonEmpty(" ", strFieldNames, "NOT NULL");
                }
                else
                {
                    strFieldNames = StringUtils.JoinNonEmpty(" ", strFieldNames, "NULL");
                }
            }
            return(strFieldNames);
        }
Example #2
0
        public static void MergeCompanies(DBPlatform context, string primaryMerge, IEnumerable <int> mergedIds)
        {
            if (String.IsNullOrEmpty(primaryMerge) || !mergedIds.Any())
            {
                return;
            }
            var primaryCompany = context.Companies.FirstOrDefault(comp => comp.name == primaryMerge);

            if (primaryCompany == null)
            {
                primaryCompany = new Company {
                    name = primaryMerge
                };
                context.Companies.Add(primaryCompany);
                context.Entry(primaryCompany).State = EntityState.Added;
            }
            var resCompanies = context.Companies.Include(co => co.Contacts)
                               .Where(comp => mergedIds.Contains(comp.Id)).ToList();

            foreach (var comp in resCompanies)
            {
                if (comp.Contacts.Count > 0)
                {
                    foreach (var cont in comp.Contacts.ToList())
                    {
                        cont.Company = primaryCompany;
                        context.Entry(cont).State = EntityState.Modified;
                    }

                    context.Companies.Remove(comp);
                }
            }

            context.SaveChanges();
        }
        private void CreateCodeClassDefinitionBody(IGeneratorWriter scriptWriter, TableDefInfo tableInfo, string className, string blokIndent)
        {
            scriptWriter.WriteCodeLine(blokIndent + "public " + className + "()");
            scriptWriter.WriteCodeLine(blokIndent + "{");
            scriptWriter.WriteCodeLine(blokIndent + "}");
            scriptWriter.WriteCodeLine("");

            string tableName = tableInfo.TableName();

            IList <TableFieldDefInfo> columnList = tableInfo.TableColumnsForVersion(m_createVersion);

            foreach (TableFieldDefInfo columnInfo in columnList)
            {
                string columnName = ClassColumnName(columnInfo);

                int columnType = columnInfo.m_nType;

                int columnMaxx = columnInfo.DbColumnSize();

                bool columnNull = columnInfo.DbColumnNull();

                string propertyName = columnName.ConvertNameToCamel();

                string propertyType = DBPlatform.EntityConvertDataType(columnType, columnMaxx, !columnNull);

                scriptWriter.WriteCodeLine(blokIndent + "public " + propertyType + " " + propertyName + " { get; set; }");
            }
        }
Example #4
0
 public static JobArea FindJobArea(string jobAreaName)
 {
     using (var context = new DBPlatform())
     {
         return(context.JobAreas.FirstOrDefault(ja => ja.Name == jobAreaName));
     }
 }
Example #5
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                User user = null;
                using (DBPlatform db = new DBPlatform())
                {
                    user = db.Users.FirstOrDefault(u => u.login == model.login);
                }
                if (user == null)
                {
                    // создаем нового пользователя
                    using (DBPlatform db = new DBPlatform())
                    {
                        db.Users.Add(new User {
                            login = model.login, password = model.Password, Name = model.Name, Role = "User"
                        });
                        db.SaveChanges();

                        user = db.Users.Where(u => u.login == model.login && u.password == model.Password).FirstOrDefault();
                    }

                    // если пользователь удачно добавлен в бд
                    if (user != null)
                    {
                        var authTicket = new FormsAuthenticationTicket(
                            1,                           // version
                            user.login,                  // user name
                            DateTime.Now,                // created
                            DateTime.Now.AddMinutes(20), // expires
                            true,                        // persistent?
                            user.Role                    // can be used to store roles
                            );

                        string encryptedTicket = FormsAuthentication.Encrypt(authTicket);

                        var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                        if (authTicket.IsPersistent)
                        {
                            authCookie.Expires = authTicket.Expiration;
                        }
                        System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);

                        /*FormsAuthentication.SetAuthCookie(model.login, true);*/
                        return(RedirectToAction("Index", "Home"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", $"User with login '{model.login}' already exist");
                }
            }

            return(View(model));
        }
Example #6
0
        protected string DbIdentity(TableFieldDefInfo fieldInfo)
        {
            bool   identityColumn = DBPlatform.AutoIncrField(fieldInfo.m_lAttributes);
            string strDbIdentity  = DBConstants.EMPTY_STRING;

            if (identityColumn)
            {
                strDbIdentity = DbIdentitySQL();
            }
            return(strDbIdentity);
        }
Example #7
0
 public ActionResult Manage()
 {
     if (User.Identity.IsAuthenticated)
     {
         using (DBPlatform db = new DBPlatform())
         {
             var user = db.Users.FirstOrDefault(u => u.login == User.Identity.Name);
             return(View(user));
         }
     }
     return(View("Login"));
 }
Example #8
0
 protected string DbTypeDefault(int nType)
 {
     if (DBPlatform.TypeIsNumber(nType))
     {
         return(NumberDefault());
     }
     else if (DBPlatform.TypeIsDate(nType))
     {
         return(GDateDefault());
     }
     return(DBConstants.EMPTY_STRING);
 }
Example #9
0
 public ActionResult DeleteUser(int?id)
 {
     using (DBPlatform db = new DBPlatform())
     {
         var user = db.Users.Find(id);
         if (user != null)
         {
             db.Users.Remove(user);
             db.SaveChanges();
         }
     }
     return(RedirectToAction("Users"));
 }
Example #10
0
 public ActionResult Index()
 {
     if (User.Identity.IsAuthenticated)
     {
         using (DBPlatform db = new DBPlatform())
         {
             var user = db.Users.FirstOrDefault(u => u.login == User.Identity.Name);
             return(View(user));
         }
     }
     else
     {
         return(RedirectToAction("Login", "Account"));
     }
 }
Example #11
0
 public ActionResult DemodeUser(int?id)
 {
     using (DBPlatform db = new DBPlatform())
     {
         var user = db.Users.Find(id);
         if (user != null)
         {
             if (user.Role == "Moderator")
             {
                 user.Role            = "User";
                 db.Entry(user).State = EntityState.Modified;
                 db.SaveChanges();
             }
         }
     }
     return(RedirectToAction("Users"));
 }
Example #12
0
        public ActionResult Login(LoginModel model)
        {
            if (ModelState.IsValid)
            {
                // поиск пользователя в бд
                User user = null;
                using (DBPlatform db = new DBPlatform())
                {
                    var temp = db.Users.ToList();
                    user = db.Users.FirstOrDefault(u => u.login == model.login && u.password == model.Password);
                }
                if (user != null)
                {
                    var authTicket = new FormsAuthenticationTicket(
                        1,                           // version
                        user.login,                  // user name
                        DateTime.Now,                // created
                        DateTime.Now.AddMinutes(20), // expires
                        true,                        // persistent?
                        user.Role                    // can be used to store roles
                        );

                    string encryptedTicket = FormsAuthentication.Encrypt(authTicket);

                    var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                    if (authTicket.IsPersistent)
                    {
                        authCookie.Expires = authTicket.Expiration;
                    }
                    System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);


                    /*FormsAuthentication.SetAuthCookie(user.login, true);*/

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ModelState.AddModelError("", "The username or password is incorrect");
                }
            }

            return(View(model));
        }
Example #13
0
        public static List <Contact> GetContactsByIds(DBPlatform context, string[] contactsIds)
        {
            List <int> contactIdsInt = new List <int>();

            foreach (var id in contactsIds)
            {
                try
                {
                    contactIdsInt.Add(int.Parse(id));
                }
                catch (Exception)
                {
                    // ignored
                }
            }
            var contacts = context.Contacts.Include(c => c.Company).Include(c => c.Country)
                           .Include(c => c.Company.Industries).Include(c => c.Title.JobLevel).Include(c => c.Company.PrimaryIndustry)
                           .Where(cont => contactIdsInt.Contains(cont.Id)).ToList();

            return(contacts);
        }
        public override string CreateTableBND(TableDefInfo tableDef, uint versCreate)
        {
            string strSQL      = "";
            var    tableFields = tableDef.TableColumnsForVersion(versCreate);

            foreach (var field in tableFields)
            {
                string strDefaultSQL;
                bool   bRequiredDefault = DBPlatform.DefaultBindRequired(field.m_lAttributes);

                if (field.m_bRequired && bRequiredDefault)
                {
                    if (DBPlatform.DefaultBindDataType(field.m_nType))
                    {
                        strDefaultSQL = BindDefaultDataTypeSql(tableDef.TableName(), field.m_strName);
                        strSQL       += (strDefaultSQL);
                        strSQL       += DBConstants.NEW_LINE_STR;
                        strSQL       += DBConstants.NEW_LINE_STR;
                    }
                }
            }

            return(strSQL);
        }
Example #15
0
        public ActionResult Users()
        {
            using (DBPlatform db = new DBPlatform())
            {
                var users   = new List <User>();
                var curUser = User.Identity.Name;
                foreach (var dbUser in db.Users)
                {
                    if (dbUser.login == curUser)
                    {
                        continue;
                    }
                    users.Add(new User
                    {
                        Id    = dbUser.Id,
                        Name  = dbUser.Name,
                        login = dbUser.login,
                        Role  = dbUser.Role
                    });
                }

                return(View(users));
            }
        }
Example #16
0
        public static StringBuilder ReplicationSpeed(int threadCount, int time)
        {
            StringBuilder sb = new StringBuilder();

            try
            {
                DBPlatform.DeleteDB();
                using (var server = new ReplicableServer())
                {
                    var masterA = server.GetInstance(ReplicableServer.MasterA_DBAddress);
                    var slaveA  = server.GetInstance(ReplicableServer.SlaveA_DBAddress);
                    var masterB = server.GetInstance(ReplicableServer.MasterB_DBAddress);

                    var data = ((InMemoryBoxRecycler)masterA.GetBoxRecycler()).GetBoxDataAndClear();

                    BoxData.SlaveReplicate(slaveA, data).Assert();
                    BoxData.MasterReplicate(masterB, data).Assert();

                    var objectCount = 10;

                    double slaveSec  = 0;
                    double masterSec = 0;
                    for (var t = 0; t < time; t++)
                    {
                        DBPlatform.For(0, threadCount,
                                       (i) =>
                        {
                            using (var box = masterA.Cube(ReplicableServer.MasterB_DBAddress))
                            {
                                for (var o = 0; o < objectCount; o++)
                                {
                                    var m = new Member
                                    {
                                        ID   = box.NewId(0, 1),
                                        Name = i.ToString() + "_" + o.ToString(),
                                        Age  = 1
                                    };
                                    box.Bind("TSpeed").Insert(m);
                                }
                                box.Commit().Assert();
                            }
                        }
                                       );


                        data = ((InMemoryBoxRecycler)masterA.GetBoxRecycler()).GetBoxDataAndClear();

                        DDebug.StartWatch();
                        BoxData.SlaveReplicate(slaveA, data).Assert();
                        slaveSec += DDebug.StopWatch().TotalSeconds;


                        DDebug.StartWatch();
                        BoxData.MasterReplicate(masterB, data).Assert();
                        masterSec += DDebug.StopWatch().TotalSeconds;
                    }
                    sb.Append("\r\n\r\n*Replicate " + (threadCount * time).ToString("#,#") + " transactions, totals " + (threadCount * objectCount * time).ToString("#,#") + " objects");
                    var avg = (threadCount * objectCount * time) / slaveSec;
                    sb.Append("\r\nSlaveReplicationSpeed " + slaveSec + "s, AVG " + avg.ToString("#,#") + " o/sec");

                    avg = (threadCount * objectCount * time) / masterSec;
                    sb.Append("\r\nMasterReplicationSpeed " + masterSec + "s, AVG " + avg.ToString("#,#") + " o/sec");

                    int count = 0;

                    DDebug.StartWatch();
                    for (var t = 0; t < time; t++)
                    {
                        DBPlatform.For(0, threadCount,
                                       (i) =>
                        {
                            for (var dbc = 0; dbc < 2; dbc++)
                            {
                                using (var box = dbc == 0 ? slaveA.Cube() : masterB.Cube())
                                {
                                    for (var o = 0; o < objectCount; o++)
                                    {
                                        long ID = i * objectCount + o + 1;
                                        ID     += (t * threadCount * objectCount);
                                        var mem = box.Bind("TSpeed", ID).Select <Member>();
                                        if (mem.ID != ID)
                                        {
                                            throw new Exception();
                                        }
                                        Interlocked.Add(ref count, mem.Age);
                                    }
                                }
                            }
                        }
                                       );
                    }

                    if (count != (threadCount * objectCount * time * 2))
                    {
                        throw new Exception();
                    }
                    masterSec = DDebug.StopWatch().TotalSeconds;
                    avg       = count / masterSec;
                    sb.Append("\r\nLookup just after replication " + masterSec + "s, AVG " + avg.ToString("#,#") + " o/sec");
                }
            }
            catch (Exception ex)
            {
                sb.Append(ex.ToString());
            }
            return(sb);
        }
Example #17
0
        public static StringBuilder PMain(int threadCount)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("\r\n\r\n*SpeedTest");
            try
            {
                DBPlatform.DeleteDB();
                using (var server = new MyServer())
                {
                    using (var db = server.GetInstance(1))
                    {
                        var objectCount = 10;
                        sb.Append("\r\nBegin Insert " + (threadCount * objectCount).ToString("#,#"));

                        DDebug.StartWatch();
                        DBPlatform.For(0, threadCount,
                                       (i) =>
                        {
                            using (var box = db.Cube())
                            {
                                for (var o = 0; o < objectCount; o++)
                                {
                                    var m = new Member
                                    {
                                        ID   = box.NewId(0, 1),
                                        Name = i.ToString() + "_" + o.ToString(),
                                        Age  = 1
                                    };
                                    box.Bind("TSpeed").Insert(m);
                                }
                                box.Commit().Assert();
                            }
                        }
                                       );

                        var sec = DDebug.StopWatch().TotalSeconds;
                        var avg = (threadCount * objectCount) / sec;
                        sb.Append("\r\nElapsed " + sec + "s, AVG Insert " + avg.ToString("#,#") + " o/sec");

                        DDebug.StartWatch();
                        DBPlatform.For(0, threadCount,
                                       (i) =>
                        {
                            using (var box = db.Cube())
                            {
                                for (var o = 0; o < objectCount; o++)
                                {
                                    long ID = i * objectCount + o + 1;
                                    var mem = box.Bind("TSpeed", ID).Select <Member>();
                                    if (mem.ID != ID)
                                    {
                                        throw new Exception();
                                    }
                                }
                            }
                        }
                                       );

                        sec = DDebug.StopWatch().TotalSeconds;
                        avg = (threadCount * objectCount) / sec;
                        sb.Append("\r\nElapsed " + sec + "s, AVG Lookup " + avg.ToString("#,#") + " o/sec");

                        //Parallel Query Language
                        DDebug.StartWatch();
                        int count = 0;
                        DBPlatform.For(0, threadCount,
                                       (i) =>
                        {
                            using (var box = db.Cube())
                            {
                                var tspeed = box.Select <Member>("from TSpeed where ID>=? & ID<=?",
                                                                 (long)(i * objectCount + 1), (long)(i * objectCount + objectCount));
                                foreach (var m in tspeed)
                                {
                                    // age == 1
                                    Interlocked.Add(ref count, m.Age);
                                }
                            }
                        }
                                       );
                        if (count != (threadCount * objectCount))
                        {
                            throw new Exception(count.ToString());
                        }

                        sec = DDebug.StopWatch().TotalSeconds;
                        avg = count / sec;
                        sb.Append("\r\nElapsed " + sec + "s, AVG Query " + avg.ToString("#,#") + " o/sec");
                    }
                }
            }
            catch (Exception ex)
            {
                sb.Append(ex.ToString());
            }
            return(sb);
        }
Example #18
0
        public static StringBuilder PMain()
        {
            StringBuilder sb = new StringBuilder();

            try
            {
                DBPlatform.DeleteDB();
                using (var server = new MyServer())
                {
                    using (var db = server.GetInstance())
                    {
                        // UpdateIncrement,version number from box.NewId(byte.MaxValue, 1);
                        sb.Append("\r\n\r\n*Version Control \r\n");
                        MemberInc m = new MemberInc();
                        m.ID   = 1;
                        m.Name = "Andy";

                        sb.Append("number increasing: ");
                        db.Get().Insert("MemberInc", m);
                        MemberInc mg = db.Get().SelectKey <MemberInc>(
                            "MemberInc", 1L);
                        sb.Append(mg.Version);

                        db.Get().Update("MemberInc", mg);
                        mg = db.Get().SelectKey <MemberInc>("MemberInc",
                                                            1L);
                        sb.Append(" " + mg.Version);
                        db.Get().Update("MemberInc", mg);
                        mg = db.Get().SelectKey <MemberInc>("MemberInc",
                                                            1L);
                        sb.Append(" " + mg.Version);

                        // Selecting Tracer
                        sb.Append("\r\n*Selecting Tracer \r\n");
                        using (var boxTracer = db.Cube())
                        {
                            bool   keepTrace = true;
                            Member tra       = boxTracer.Bind("MemberInc", 1L)
                                               .Select <Member>(keepTrace);
                            String currentName = tra.Name;

                            {
                                // another box changes the name
                                MemberInc mm = new MemberInc();
                                mm.ID   = 1;
                                mm.Name = "Kelly";
                                db.Get().Update("MemberInc", mm.ID, mm);
                            }

                            // will auto rollback
                            if (boxTracer.Commit().Equals(CommitResult.OK))
                            {
                                throw new Exception();
                            }
                            else
                            {
                                sb.Append("the name '" + currentName + "' is changed,");
                            }
                        }
                        Member nm = db.Get().SelectKey <Member>("MemberInc", 1L);
                        sb.Append("new name is '" + nm.Name + "'");
                    }
                }
            }
            catch (Exception ex)
            {
                sb.Append(ex.ToString());
            }
            return(sb);
        }
Example #19
0
        public static StringBuilder PMain()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("\r\n\r\n*Replication: Master-Master");
            try
            {
                DBPlatform.DeleteDB();
                using (var server = new ReplicableServer())
                {
                    var masterA = server.GetInstance(ReplicableServer.MasterA_DBAddress);
                    var masterB = server.GetInstance(ReplicableServer.MasterB_DBAddress);

                    // send to MasterB_Address
                    using (var box = masterA.Cube(ReplicableServer.MasterB_DBAddress))
                    {
                        for (var i = 0; i < 3; i++)
                        {
                            box.Bind("Member").Insert(
                                new Member()
                            {
                                ID   = box.NewId(Member.IncTableID, 1) * 1000 + ReplicableServer.MasterA_DBAddress,
                                Name = "A" + i
                            }
                                );
                            //or Key = [ID,Address]
                            //m.ID =  box.NewId(Member.IncTableID, 1) ;
                            //m.Address = box.LocalAddress;
                            //box.Bind("Member").Insert(m);
                        }

                        box.Commit().Assert();
                    }
                    //send to MasterA_Address
                    using (var box = masterB.Cube(ReplicableServer.MasterA_DBAddress))
                    {
                        for (var i = 0; i < 3; i++)
                        {
                            box.Bind("Member").Insert(
                                new Member()
                            {
                                ID   = box.NewId(Member.IncTableID, 1) * 1000 + ReplicableServer.MasterB_DBAddress,
                                Name = "B" + i
                            }
                                );
                        }
                        box.Commit().Assert();
                    }

                    List <Package> buffer;
                    var            recycler = (InMemoryBoxRecycler)masterA.GetBoxRecycler();
                    lock (recycler.GetPackage())
                    {
                        buffer = new List <Package>(recycler.GetPackage());
                        recycler.GetPackage().Clear();
                    }
                    recycler = (InMemoryBoxRecycler)masterB.GetBoxRecycler();
                    lock (recycler.GetPackage())
                    {
                        buffer.AddRange(recycler.GetPackage());
                        recycler.GetPackage().Clear();
                    }
                    foreach (var p in buffer)
                    {
                        if (p.Socket.DestAddress == ReplicableServer.MasterA_DBAddress)
                        {
                            (new BoxData(p.OutBox)).MasterReplicate(masterA);
                        }
                        if (p.Socket.DestAddress == ReplicableServer.MasterB_DBAddress)
                        {
                            (new BoxData(p.OutBox)).MasterReplicate(masterB);
                        }
                    }

                    // checking
                    sb.Append("\r\nMasterA Address is " + masterA.LocalAddress + " \r\n");
                    using (var box = masterA.Cube())
                    {
                        foreach (var o in box.Select <Member>("from Member", null))
                        {
                            sb.Append(o.Name + " , ");
                        }
                    }
                    sb.Append("\r\nMasterB Address is " + masterB.LocalAddress + " \r\n");
                    using (var box = masterB.Cube())
                    {
                        foreach (var o in box.Select <Member>("from Member", null))
                        {
                            sb.Append(o.Name + " , ");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                sb.Append(ex.ToString() + "\r\n");
            }
            return(sb);
        }
Example #20
0
        public static StringBuilder PMain()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("\r\n*Replication: Master-Slave");
            try
            {
                DBPlatform.DeleteDB();
                using (var server = new ReplicableServer())
                {
                    var masterA = server.GetInstance(ReplicableServer.MasterA_DBAddress);
                    var slaveA  = server.GetInstance(ReplicableServer.SlaveA_DBAddress);

                    using (var box = masterA.Cube())
                    {
                        for (var i = 0; i < 3; i++)
                        {
                            box.Bind("Member").Insert(
                                new Member()
                            {
                                ID   = box.NewId(Member.IncTableID, 1),
                                Name = "LN " + i
                            }
                                );
                        }
                        box.Commit().Assert();
                    }

                    // Post database's changes to slave
                    var recycler = (InMemoryBoxRecycler)masterA.GetBoxRecycler();
                    lock (recycler.GetPackage())
                    {
                        foreach (var p in recycler.GetPackage())
                        {
                            if (p.Socket.SourceAddress == ReplicableServer.MasterA_DBAddress)
                            {
                                (new BoxData(p.OutBox)).SlaveReplicate(slaveA).Assert();
                            }
                        }
                        recycler.GetPackage().Clear();
                    }

                    // checking
                    sb.Append("\r\nMasterA Address is " + masterA.LocalAddress + " \r\n");
                    using (var box = masterA.Cube())
                    {
                        foreach (var o in box.Select <Member>("from Member", null))
                        {
                            sb.Append(o.Name + " , ");
                        }
                    }
                    sb.Append("\r\nSlaveA Address is " + slaveA.LocalAddress + " \r\n");
                    using (var box = slaveA.Cube())
                    {
                        foreach (var o in box.Select <Member>("from Member", null))
                        {
                            sb.Append(o.Name + " , ");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                sb.Append(ex.ToString() + "\r\n");
            }
            return(sb);
        }
Example #21
0
        public static StringBuilder PMain()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("\r\n*Start\r\n");
            try
            {
                DBPlatform.DeleteDB();
                using (var server = new MyServer())
                {
                    using (var db = server.GetInstance(1))
                    {
                        using (var box = db.Cube())
                        {
                            // insert member & product
                            box.Bind("Member").Insert(
                                new Member()
                            {
                                ID      = box.NewId(Member.IncTableID, 1),
                                Name    = "Andy",
                                RegTime = new DateTime(2013, 1, 2),
                                Tags    = new string[] { "Nice", "Strong" }
                            }
                                );
                            box.Bind("Member").Insert(
                                new MemberVIP()
                            {
                                ID      = box.NewId(Member.IncTableID, 1),
                                Name    = "Kelly",
                                RegTime = new DateTime(2013, 1, 3),
                                Tags    = new string[] { "Gamer" },
                                VIP     = 3
                            }
                                );

                            // Dynamic Column
                            Product game = new Product()
                            {
                                Type = 8,
                                UID  = new Guid("{22222222-0000-0000-0000-000000000000}"),
                                Name = "MoonFlight"
                            };
                            game["GameType"] = "ACT";
                            box.Bind("Product").Insert(game);

                            box.Commit().Assert();
                        }


                        using (var box = db.Cube())
                        {
                            // SQL like
                            //  > < >= <=  == !=
                            //  & | ()
                            //  []
                            var m = GetFirst(box.Select <MemberVIP>("from Member where VIP>?", 1));
                            sb.Append("Kelly RegTime " + m.RegTime + "\r\n");
                            m.Name   = "Kelly J";
                            m.Amount = 100;
                            box.Bind("Member", m.ID).Update(m);
                            box.Commit().Assert();
                        }
                        using (var box = db.Cube())
                        {
                            var m = GetFirst(box.Select <Member>("from Member where Name==?", "Kelly J"));
                            sb.Append("Updated : " + m.Name + "  " + m.Amount + "\r\n");
                        }

                        using (var box = db.Cube())
                        {
                            // Key-Value Style , Composite-Key Supported
                            var cs = box
                                     .Bind("Product", 8, new Guid("{22222222-0000-0000-0000-000000000000}"))
                                     .Select <Product>();
                            sb.Append("Product Name " + cs.Name + "  " + cs["GameType"] + "\r\n");
                        }

                        using (var box = db.Cube())
                        {
                            //Custom QueryFunction
                            // [] <= call IFunction Interface
                            // [A,B] <=  Fields will be passed
                            var list = box.Select <Member>("from Member where [Tags]", new QueryArray("Strong"));
                            sb.Append("The Strong one is ");
                            foreach (var m in list)
                            {
                                sb.Append("'" + m.Name + "'\r\n");
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                sb.Append(ex.ToString() + "\r\n");
            }
            return(sb);
        }
        protected override string DbConvertDataType(TableFieldDefInfo fieldInfo)
        {
            string strFieldType = DBPlatform.MsSQLConvertDataType(fieldInfo.m_nType, fieldInfo.m_lSize);

            return(strFieldType);
        }
Example #23
0
 protected string NumberDefault()
 {
     return(DBPlatform.NumberDefault(PlatformType));
 }
Example #24
0
 protected string GDateDefault()
 {
     return(DBPlatform.GDateDefault(PlatformType));
 }