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);
        }
Ejemplo n.º 2
0
        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);
        }