public async Task<ActionResult> SetUp(SetupViewModel model) { if (ModelState.IsValid) { using (var db = new FooBoxContext()) using (var transaction = db.Database.BeginTransaction()) { try { using (var fileManager = new FileManager(db)) using (var userManager = new UserManager(db)) { userManager.InitialSetup(); fileManager.InitialSetup(); // Create the admin user. userManager.CreateUser(new User { Name = model.AdminUserName, QuotaLimit = long.MaxValue }, model.AdminPassword); userManager.FindUser(model.AdminUserName).Groups.Add(userManager.FindGroup(UserManager.AdministratorsGroupName)); await db.SaveChangesAsync(); } transaction.Commit(); return RedirectToAction("Index", "Home"); } catch (Exception ex) { ModelState.AddModelError("", "Error setting up the database: " + ex.Message); } } } // Error return View(model); }
public ClientController() { _fileManager = new FileManager(); _userManager = new UserManager(_fileManager.Context); }
public AccountController(UserManager userManager) { UserManager = userManager; }
public void InitialSetup() { using (var userManager = new UserManager(_context)) { if (_context.Files.Any()) throw new Exception("The database is already set up."); // Create the root folder. var rootFolder = _context.Folders.Add(new Folder { Name = "", DisplayName = "", Tag = RootFolderTag, Owner = userManager.GetDefaultUser() }); // Create the default internal client for the default user. var internalClient = CreateClient(userManager.GetDefaultUser().Id, "Internal", FileManager.InternalClientTag); // Create the base changelist. var baseChangelist = _context.Changelists.Add(new Changelist { TimeStamp = DateTime.UtcNow, Client = internalClient }); _context.SaveChanges(); } }
public Folder GetUserRootFolder(long userId) { using (var userManager = new UserManager(_context)) return userManager.FindUser(userId).RootFolder; }
public InvitationController() { _fileManager = new FileManager(); _userManager = new UserManager(_fileManager.Context); }