internal void PopulateWith(Entity[] entities) { foreach (var entity in entities) { if (entity.Id == Guid.Empty) { var id = Guid.NewGuid(); entity.Id = id; entity[entity.LogicalName + "id"] = id; } db.Add(entity); } }
internal void AddRoleTemplatesForBusinessUnit(XrmDb db, EntityReference businessUnit) { //role templates are actually uniques across all business units so don't try adding more than once. var allRoleTemplates = db.GetDBEntityRows("roletemplate").Select(x => x.ToEntity()); foreach (var sr in SecurityRoles.Values.Where(x => x.RoleTemplateId != Guid.Empty).GroupBy(x => x.RoleTemplateId).Select(x => x.Key)) { if (!allRoleTemplates.Any(x => x.Id == sr)) { var roleTemplate = new Entity("roletemplate") { Id = sr }; db.Add(roleTemplate); } } }
internal void AddRoleToDb(XrmDb db, SecurityRole newRole, EntityReference businessUnit) { var roleMeta = Metadata.EntityMetadata.GetMetadata("role"); var role = new Entity("role") { Id = newRole.RoleId }; role[roleMeta.PrimaryIdAttribute] = role.Id; role["businessunitid"] = businessUnit; role["name"] = newRole.Name; role["roletemplateid"] = newRole.RoleTemplateId; role["createdby"] = Core.AdminUserRef; role["createdon"] = DateTime.UtcNow.Add(Core.TimeOffset); role["modifiedby"] = Core.AdminUserRef; role["modifiedon"] = DateTime.UtcNow.Add(Core.TimeOffset); db.Add(role); SecurityRoleMapping.Add(role.Id, newRole.RoleId); }
internal void AddRolesForBusinessUnit(XrmDb db, EntityReference businessUnit) { foreach (var sr in SecurityRoles.Values) { var roleMeta = Metadata.EntityMetadata.GetMetadata("role"); var role = new Entity("role") { Id = Guid.NewGuid() }; role[roleMeta.PrimaryIdAttribute] = role.Id; role["businessunitid"] = businessUnit; role["name"] = sr.Name; role["roletemplateid"] = sr.RoleTemplateId; role["createdby"] = Core.AdminUserRef; role["createdon"] = DateTime.Now.Add(Core.TimeOffset); role["modifiedby"] = Core.AdminUserRef; role["modifiedon"] = DateTime.Now.Add(Core.TimeOffset); db.Add(role); SecurityRoleMapping.Add(role.Id, sr.RoleId); } }