Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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);
        }