public ActionResult CreateForeignKey(string appName, string tableName) { DBApp app = new DBApp() { Name = appName, ConnectionString = (new Entities()).Database.Connection.ConnectionString }; DBTable table = app.GetTable(tableName); ViewBag.tables = app.GetTables().Select(t => t.tableName); ViewBag.Columns = table.columns.Select(x => x.Name); return View(new DBForeignKey() { sourceTable = table }); }
public ActionResult Index(string appName) { DBApp app = new DBApp() { Name = appName, ConnectionString = (new Entities()).Database.Connection.ConnectionString }; return View(app.GetTables()); }
public ActionResult Create(string appName, DBTable model) { if (!string.IsNullOrWhiteSpace(model.tableName)) { DBApp app = new DBApp() { Name = appName, ConnectionString = (new Entities()).Database.Connection.ConnectionString }; model.Application = app; foreach (DBTable t in app.GetTables())//can not create table with name, which is already exist { if (t.tableName == model.tableName) { TempData["message-error"] = "Table " + model.tableName + " can not be created. Table name " + model.tableName + " is already exist."; return RedirectToAction("Index", new { @appName = appName }); } } foreach (DBColumn c in model.columns)//column name must be unique in table, int p is for situation, when column is compared with itself { int p = 0; foreach (DBColumn d in model.columns) { if (c.Name == d.Name) { p = p + 1; if (p > 1) { TempData["message-error"] = "Table " + model.tableName + " can not be created. Column name " + c.Name + " is in table more then once."; return RedirectToAction("Index", new { @appName = appName }); } } } } model.Create(); foreach (DBColumn c in model.columns)//every colum with isUnique=true add query for AddUniqueValue into queries { List<string> unique = new List<string>(); if (c.isUnique) { unique.Add(c.Name); model.columns.AddUniqueValue(c.Name, unique); } } app.SaveChanges(); TempData["message-success"] = "Table " + model.tableName + " was successfully created."; return RedirectToAction("Index", new { @appName = appName }); } return View(model); }