Esempio n. 1
0
        /// <summary>
        /// Installs and seeds the database.
        /// </summary>
        /// <param name="username">The admin username</param>
        /// <param name="password">The admin password</param>
        /// <param name="email">The admin email</param>
        public static void Install(string username, string password, string email)
        {
            // Read embedded create script
            Stream str = Assembly.GetExecutingAssembly().GetManifestResourceStream(Database.ScriptRoot + ".Create.sql");
            String sql = new StreamReader(str).ReadToEnd();

            str.Close();

            // Read embedded data script
            str = Assembly.GetExecutingAssembly().GetManifestResourceStream(Database.ScriptRoot + ".Data.sql");
            String data = new StreamReader(str).ReadToEnd();

            str.Close();

            // Split statements and execute
            string[] stmts = sql.Split(new char[] { ';' });
            using (IDbTransaction tx = Database.OpenTransaction()) {
                // Create database from script
                foreach (string stmt in stmts)
                {
                    if (!String.IsNullOrEmpty(stmt.Trim()))
                    {
                        Models.SysUser.Execute(stmt, tx);
                    }
                }
                tx.Commit();
            }

            // Split statements and execute
            stmts = data.Split(new char[] { ';' });
            using (IDbTransaction tx = Database.OpenTransaction()) {
                // Create user
                Models.SysUser usr = new Models.SysUser()
                {
                    Login   = username,
                    Email   = email,
                    GroupId = new Guid("7c536b66-d292-4369-8f37-948b32229b83"),
                    Created = DateTime.Now,
                    Updated = DateTime.Now
                };
                usr.Save(tx);

                // Create user password
                Models.SysUserPassword pwd = new Models.SysUserPassword()
                {
                    Id       = usr.Id,
                    Password = password,
                    IsNew    = false
                };
                pwd.Save(tx);

                // Create default data
                foreach (string stmt in stmts)
                {
                    if (!String.IsNullOrEmpty(stmt.Trim()))
                    {
                        Models.SysUser.Execute(stmt, tx);
                    }
                }
                tx.Commit();

                // Fire installed event
                if (OnInstalled != null)
                {
                    OnInstalled();
                }
            }
        }
Esempio n. 2
0
		/// <summary>
		/// Installs and seeds the database.
		/// </summary>
		/// <param name="username">The admin username</param>
		/// <param name="password">The admin password</param>
		/// <param name="email">The admin email</param>
		public static void Install(string username, string password, string email) { 
			// Read embedded create script
			Stream str = Assembly.GetExecutingAssembly().GetManifestResourceStream(Database.ScriptRoot + ".Create.sql") ;
			String sql = new StreamReader(str).ReadToEnd() ;
			str.Close() ;

			// Read embedded data script
			str = Assembly.GetExecutingAssembly().GetManifestResourceStream(Database.ScriptRoot + ".Data.sql") ;
			String data = new StreamReader(str).ReadToEnd() ;
			str.Close() ;

			// Split statements and execute
			string[] stmts = sql.Split(new char[] { ';' }) ;
			using (IDbTransaction tx = Database.OpenTransaction()) {
				// Create database from script
				foreach (string stmt in stmts) {
					if (!String.IsNullOrEmpty(stmt.Trim()))
						Models.SysUser.Execute(stmt, tx) ;
				}
				tx.Commit() ;
			}

			// Split statements and execute
			stmts = data.Split(new char[] { ';' }) ;
			using (IDbTransaction tx = Database.OpenTransaction()) {
				// Create user
				Models.SysUser usr = new Models.SysUser() {
					Login = username,
					Email = email,
					GroupId = new Guid("7c536b66-d292-4369-8f37-948b32229b83"),
					Created = DateTime.Now,
					Updated = DateTime.Now
				} ;
				usr.Save(tx) ;

				// Create user password
				Models.SysUserPassword pwd = new Models.SysUserPassword() {
					Id = usr.Id,
					Password = password,
					IsNew = false
				} ;
				pwd.Save(tx) ;

				// Create default data
				foreach (string stmt in stmts) {
					if (!String.IsNullOrEmpty(stmt.Trim()))
						Models.SysUser.Execute(stmt, tx) ;
				}		
				tx.Commit() ;

				// Fire installed event
				if (OnInstalled != null)
					OnInstalled();
			}
		}