public Group Create(string name, bool usePermissions) { if (this.Exists(name, null)) { var ex = new StrixMembershipException(string.Format("A group with name {0} already exists", name)); Logger.Log(ex.Message, ex, LogLevel.Fatal); throw ex; } var currentUserId = StrixPlatform.User.Id; if (currentUserId == null) { throw new StrixMembershipException("No active user"); } var group = new Group(Guid.NewGuid(), name); group.UsePermissions = usePermissions; group = this._dataSource.Save(group); if (group == null) { Logger.Log(string.Format("An error occurred while creating group {0}", group.Name), LogLevel.Error); } else { var args = new Dictionary<string, object>(); args.Add("Id", group.Id); args.Add("GroupName", group.Name); StrixPlatform.RaiseEvent<GeneralEvent>(new GeneralEvent("GroupCreateEvent", args)); } return group; }
public void InitMainGroup() { if (_mainGroup == null) { _mainGroup = this._dataSource.Query<Group>("Roles.Role").Where(g => g.Name.ToLower() == Resources.DefaultValues.MainGroupName).FirstOrDefault(); if (_mainGroup == null) { var mainGroup = new Group(Guid.NewGuid(), Resources.DefaultValues.MainGroupName); this._dataSource.Save(mainGroup); var adminRole = new Role(Guid.NewGuid(), mainGroup.Id, PlatformConstants.ADMINROLE); this._dataSource.Save(adminRole); var groupRole = new GroupInRole(mainGroup.Id, adminRole.Id, DateTime.Now, null); groupRole.CurrentNumberOfUsers = 1; this._adminRole = groupRole; mainGroup.Roles = new List<GroupInRole>() { groupRole }; _mainGroup = mainGroup; this._dataSource.SaveChanges(); } else { this._adminRole = _mainGroup.Roles.First(r => r.Role.Name.ToLower() == PlatformConstants.ADMINROLE.ToLower()); } } }