private IEnumerable <ManagedRole> UpdateRoles(IManagedTenant tenant, RoleList roles, ICollection <IEntity> entities) { using (Profiler.Measure("PlatformService.UpdateRoles:tenant")) { if (tenant == null) { throw new ArgumentNullException("tenant"); } var ids = roles == null?Enumerable.Empty <string>() : roles.Select(r => r.RemoteId.ToString()); CastEntityHelper.Delete(tenant.Roles.Where(r => !ids.Contains(r.RemoteId)).Select(t => new EntityRef(t.Id))); if (roles == null) { return(Enumerable.Empty <ManagedRole>()); } var updatedEntities = roles.Where(r => r.RemoteId > 0).Select(r => UpdateRole(tenant, r, entities)).ToList(); entities.AddRange(updatedEntities); return(updatedEntities); } }
private IEnumerable <ManagedUser> UpdateUsers(IManagedTenant tenant, UserList users, ICollection <IEntity> entities) { using (Profiler.Measure("PlatformService.UpdateUsers")) { if (tenant == null) { throw new ArgumentNullException("tenant"); } var ids = users == null?Enumerable.Empty <string>() : users.Select(u => u.RemoteId.ToString()); CastEntityHelper.Delete(tenant.Users.Where(u => !ids.Contains(u.RemoteId)).Select(t => new EntityRef(t.Id))); if (users == null) { return(Enumerable.Empty <ManagedUser>()); } var updatedEntities = users.Where(u => u.RemoteId > 0).Select(u => UpdateUser(tenant, u, entities)).ToList(); entities.AddRange(updatedEntities); return(updatedEntities); } }
private IEnumerable <ManagedTenant> UpdateTenants(IManagedPlatform platform, IList <RemoteTenantInfo> tenants, ICollection <IEntity> entities, ICollection <ManagedApp> existingApps) { using (Profiler.Measure("PlatformService.UpdateTenants")) { if (platform == null) { throw new ArgumentNullException("platform"); } var ids = tenants == null?Enumerable.Empty <string>() : tenants.Select(t => t.RemoteId.ToString()); CastEntityHelper.Delete(platform.ContainsTenants.Where(t => !ids.Contains(t.RemoteId)).Select(t => new EntityRef(t.Id))); if (tenants == null) { return(new List <ManagedTenant>()); } var updatedEntities = tenants.Select(t => UpdateTenant(platform, t, entities, existingApps)).ToList(); entities.AddRange(updatedEntities); return(updatedEntities); } }