public static AdminContext getAdminCtx() { if (ctx == null) { ctx = new AdminContext(); } return(ctx); }
public static TenantContext getTenantCxt(string tenant) { if (first) { Database.SetInitializer <TenantContext>(null); first = false; } tenant = "newT2"; string connectionStr = SchemaHandler.getTenantConnectionString(tenant); TenantContext t; using (var ctx = new AdminContext()) { var juego = from j in ctx.Juego where j.nombreJuego.Equals(tenant) select j; if (juego.Count <Juego>() == 0) { try { SchemaHandler.createTenant(tenant); /*Esto debe llamar a la funcion de creacion de Juego del DJuego*/ Juego newJuego = new Juego(); //newJuego.id = Guid.NewGuid(); newJuego.dominio = "domino" + tenant; using (StreamWriter w = File.AppendText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers/etc/hosts"))) { w.WriteLine("127.0.0.1 " + tenant + ".atlas2.com"); } newJuego.nombreJuego = tenant; ctx.Juego.Add(newJuego); ctx.SaveChangesAsync().Wait(); t = new TenantContext(connectionStr, tenant); createTables(t); } catch (Exception e) { throw e; } } else { t = new TenantContext(connectionStr, tenant); } ctx.Database.Connection.Close(); } return(t); }