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); }
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; }"); } }
public static JobArea FindJobArea(string jobAreaName) { using (var context = new DBPlatform()) { return(context.JobAreas.FirstOrDefault(ja => ja.Name == jobAreaName)); } }
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)); }
protected string DbIdentity(TableFieldDefInfo fieldInfo) { bool identityColumn = DBPlatform.AutoIncrField(fieldInfo.m_lAttributes); string strDbIdentity = DBConstants.EMPTY_STRING; if (identityColumn) { strDbIdentity = DbIdentitySQL(); } return(strDbIdentity); }
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")); }
protected string DbTypeDefault(int nType) { if (DBPlatform.TypeIsNumber(nType)) { return(NumberDefault()); } else if (DBPlatform.TypeIsDate(nType)) { return(GDateDefault()); } return(DBConstants.EMPTY_STRING); }
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")); }
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")); } }
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")); }
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)); }
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); }
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)); } }
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); }
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); }
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); }
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); }
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); }
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); }
protected string NumberDefault() { return(DBPlatform.NumberDefault(PlatformType)); }
protected string GDateDefault() { return(DBPlatform.GDateDefault(PlatformType)); }