public object Resolve(object source, Dictionary <string, IResolver> resolvers = null, bool recursive = false) { var result = new List <Model.User>(); var userCollection = source.GetPublicInstancePropertyValue(this.collectionName); if (null != userCollection) { var userResolver = new CollectionFromSchemaToModelTypeResolver(typeof(Model.User)); result.AddRange(userResolver.Resolve(userCollection.GetPublicInstancePropertyValue("User")) as IEnumerable <Model.User>); } return(result); }
public object Resolve(object source, Dictionary <string, IResolver> resolvers = null, bool recursive = false) { TeamSecurity result = null; var security = source.GetPublicInstancePropertyValue("Security"); if (null != security) { result = new TeamSecurity(); // Process settings var clearExistingOwnersValue = (security?.GetPublicInstancePropertyValue("Owners")?.GetPublicInstancePropertyValue("ClearExistingItems")); result.ClearExistingOwners = clearExistingOwnersValue != null ? (Boolean)clearExistingOwnersValue : false; var clearExistingMembersValue = (security?.GetPublicInstancePropertyValue("Members")?.GetPublicInstancePropertyValue("ClearExistingItems")); result.ClearExistingMembers = clearExistingMembersValue != null ? (Boolean)clearExistingMembersValue : false; // Process users (owners and members) var usersResolver = new CollectionFromSchemaToModelTypeResolver(typeof(TeamSecurityUser)); var owners = security.GetPublicInstancePropertyValue("Owners"); if (null != owners) { result.Owners.AddRange( usersResolver.Resolve(owners.GetPublicInstancePropertyValue("User")) as IEnumerable <TeamSecurityUser>); } var members = security.GetPublicInstancePropertyValue("Members"); if (null != members) { result.Members.AddRange( usersResolver.Resolve(members.GetPublicInstancePropertyValue("User")) as IEnumerable <TeamSecurityUser>); } } return(result); }