public static IDataBase GetOrCreateDataBase(this ICremaHost cremaHost, string databaseName) { if (cremaHost.DataBases.Contains(databaseName)) { var database = cremaHost.DataBases[databaseName]; if (!database.IsLoaded) { database.Load(Authentication.System); } return(database); } var adminAuthentication = cremaHost.GetAdminAuthentication(); try { var database = cremaHost.DataBases.AddNewDataBase(adminAuthentication, databaseName, "create database"); if (!database.IsLoaded) { database.Load(Authentication.System); } return(database); } finally { cremaHost.Logout(adminAuthentication); } }
public static IUser GetOrCreateUser(this ICremaHost cremaHost, string userId, string password) { var userContext = cremaHost.GetService <IUserContext>(); var user = userContext.Dispatcher.Invoke(() => { if (userContext.Users.Contains(userId)) { return(userContext.Users[userId]); } return(null); }); if (user != null) { return(user); } var adminAuthentication = cremaHost.GetAdminAuthentication(); try { return(userContext.Dispatcher.Invoke(() => userContext.Categories.Root.AddNewUser(adminAuthentication, userId, password.ToSecureString(), userId, Authority.Member))); } finally { cremaHost.Logout(adminAuthentication); } }
public static void Stop(this ICremaHost cremaHost, Authentication authentication) { var token = authenticationToToken[authentication]; #if SERVER cremaHost.Logout(authentication); #endif cremaHost.Close(token); authenticationToToken.Remove(authentication); }