示例#1
0
        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);
        }
示例#2
0
 public ClientController()
 {
     _fileManager = new FileManager();
     _userManager = new UserManager(_fileManager.Context);
 }
示例#3
0
 public AccountController(UserManager userManager)
 {
     UserManager = userManager;
 }
示例#4
0
        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();
            }
        }
示例#5
0
 public Folder GetUserRootFolder(long userId)
 {
     using (var userManager = new UserManager(_context))
         return userManager.FindUser(userId).RootFolder;
 }
示例#6
0
 public InvitationController()
 {
     _fileManager = new FileManager();
     _userManager = new UserManager(_fileManager.Context);
 }