public void Handle(UserUpdateCommand command) { Check.RequireNotNull(command, "command"); var user = _documentSession.Load <User>(command.Id); user.UpdateDetails( command.Name, command.Description, string.IsNullOrWhiteSpace(command.AvatarId) ? _mediaResourceFactory.MakeDefaultAvatarImage(AvatarDefaultType.User) : _documentSession.Load <MediaResource>(command.AvatarId), command.DefaultLicence, command.Timezone); var userProject = _documentSession.Load <UserProject>(user.Memberships.Single(x => x.Group.GroupType == "userproject" && x.Group.CreatedBy == command.Id).Group.Id); userProject.UpdateDetails( user, command.Name, command.Description, command.Website, string.IsNullOrWhiteSpace(command.AvatarId) ? _mediaResourceFactory.MakeDefaultAvatarImage(AvatarDefaultType.User) : _documentSession.Load <MediaResource>(command.AvatarId), string.IsNullOrWhiteSpace(command.BackgroundId) ? _mediaResourceFactory.MakeDefaultBackgroundImage("userproject") : _documentSession.Load <MediaResource>(command.BackgroundId)); _documentSession.Store(user); _documentSession.Store(userProject); _documentSession.SaveChanges(); }
public void Handle(ProjectCreateCommand command) { Check.RequireNotNull(command, "command"); // Get parent group Group parentGroup = _documentSession.Load <AppRoot>(Constants.AppRootId); User user = _documentSession.Load <User>(command.UserId); // Make project var project = new Project( user, command.Name, command.Description, command.Website, string.IsNullOrWhiteSpace(command.AvatarId) ? _mediaResourceFactory.MakeDefaultAvatarImage(AvatarDefaultType.Project) : _documentSession.Load <MediaResource>(command.AvatarId), string.IsNullOrWhiteSpace(command.BackgroundId) ? _mediaResourceFactory.MakeDefaultBackgroundImage("project") : _documentSession.Load <MediaResource>(command.BackgroundId), command.Categories, DateTime.UtcNow, parentGroup); _documentSession.Store(project); // Store project, get a real Id // Add administrator membership to creating user user.UpdateMembership( user, project, _documentSession.Load <Role>(new[] { "roles/projectadministrator", "roles/projectmember" })); _documentSession.Store(user); _documentSession.SaveChanges(); }
public void Handle(OrganisationCreateCommand command) { Check.RequireNotNull(command, "command"); // Get parent group Group parentGroup = null; parentGroup = _documentSession.Load <AppRoot>(Constants.AppRootId); // Make organisation var organisation = new Organisation( _documentSession.Load <User>(command.UserId), command.Name, command.Description, command.Website, string.IsNullOrWhiteSpace(command.AvatarId) ? _mediaResourceFactory.MakeDefaultAvatarImage(AvatarDefaultType.Organisation) : _documentSession.Load <MediaResource>(command.AvatarId), string.IsNullOrWhiteSpace(command.BackgroundId) ? _mediaResourceFactory.MakeDefaultBackgroundImage("organisation") : _documentSession.Load <MediaResource>(command.BackgroundId), command.Categories, DateTime.UtcNow, parentGroup); _documentSession.Store(organisation); // Add administrator membership to creating user var user = _documentSession.Load <User>(command.UserId); user.UpdateMembership( user, organisation, _documentSession.Load <Role>("roles/organisationadministrator", "roles/organisationmember")); _documentSession.Store(user); _documentSession.SaveChanges(); }
public object BuildCreateOrganisation() { return(new { Name = string.Empty, Description = string.Empty, Website = string.Empty, Avatar = _mediaResourceFactory.MakeDefaultAvatarImage(AvatarDefaultType.Organisation), Background = _mediaResourceFactory.MakeDefaultBackgroundImage("organisation"), AvatarId = string.Empty, BackgroundId = string.Empty, Categories = new string [] {} }); }
private void AddUser(AppRoot appRoot, string password, string email, string name, IDocumentSession documentSession, params string[] roleIds) { var defaultAvatarImage = _mediaResourceFactory.MakeDefaultAvatarImage(AvatarDefaultType.User); var defaultBackgroundImage = _mediaResourceFactory.MakeDefaultBackgroundImage("user"); var user = new User(password, email, name, defaultAvatarImage, Constants.DefaultLicence, Constants.DefaultTimezone, DateTime.UtcNow); documentSession.Store(user); user.UpdateMembership(user, appRoot, Roles.Where(x => roleIds.Any(y => x.Id == "roles/" + y))); documentSession.Store(user); var userProject = new UserProject(user, name, string.Empty, string.Empty, defaultAvatarImage, defaultBackgroundImage, DateTime.UtcNow, appRoot); documentSession.Store(userProject); user.UpdateMembership( user, userProject, Roles.Where(x => x.Id == "roles/userprojectadministrator" || x.Id == "roles/userprojectmember")); documentSession.Store(user); var favourites = new Favourites(user, DateTime.UtcNow, appRoot); documentSession.Store(favourites); user.UpdateMembership( user, favourites, Roles.Where(x => x.Id == "roles/favouritesadministrator" || x.Id == "roles/favouritesmember")); documentSession.Store(user); Users.Add(user); //UserCreateCommand command = new UserCreateCommand() //{ // Name = name, // Email = email, // Password = password, // Roles = new[] { "roles/globalmember", "roles/globaladministrator" } //}; //_commandProcessor.Process<UserCreateCommand, User>(command, x => Users.Add(x)); }
public User HandleReturn(UserCreateCommand userCreateCommand) { Check.RequireNotNull(userCreateCommand, "userCreateCommand"); var appRoot = _documentSession.Load <AppRoot>(Constants.AppRootId); var defaultAvatarImage = _mediaResourceFactory.MakeDefaultAvatarImage(AvatarDefaultType.User); var defaultBackgroundImage = _mediaResourceFactory.MakeDefaultBackgroundImage("user"); // Make user var user = new User( userCreateCommand.Password, userCreateCommand.Email, userCreateCommand.Name, defaultAvatarImage, Constants.DefaultLicence, userCreateCommand.Timezone, DateTime.UtcNow); _documentSession.Store(user); // Make user's project group var userProject = new UserProject( user, userCreateCommand.Name, string.Empty, string.Empty, defaultAvatarImage, defaultBackgroundImage, DateTime.UtcNow, appRoot); _documentSession.Store(userProject); // Make user's favourites group var favourites = new Favourites( user, DateTime.UtcNow, appRoot); _documentSession.Store(favourites); // Add app root membership user.UpdateMembership( user, appRoot, _documentSession.Query <Role>().Where(x => x.Id.In(userCreateCommand.Roles)).ToList()); // Add administrator membership to user project user.UpdateMembership( user, userProject, _documentSession.Query <Role>().Where(x => x.Id == "roles/userprojectadministrator" || x.Id == "roles/userprojectmember")); // Add administrator membership to favourites user.UpdateMembership( user, favourites, _documentSession.Query <Role>().Where(x => x.Id == "roles/favouritesadministrator" || x.Id == "roles/favouritesmember")); _documentSession.Store(user); _documentSession.SaveChanges(); return(user); }