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);
        }