Esempio n. 1
0
        public bool IsResolverInformationValid(CreateScopeResolverInformation resolverCreateModel)
        {
            if (resolverCreateModel == null || String.IsNullOrEmpty(resolverCreateModel.Typename) == true)
            {
                return(false);
            }

            String normalizeNamed = GetNormalizedMapperName(resolverCreateModel.Typename);

            if (_resolverMapper.ContainsKey(normalizeNamed) == false)
            {
                return(false);
            }

            IScopeResolver <TPacket, TAddress> resolver = _resolverMapper[normalizeNamed].Invoke();

            Boolean result = resolver.ArePropertiesAndValuesValid(resolverCreateModel.PropertiesAndValues, _serializer);

            if (result == true && resolver is IScopeResolverContainingOtherResolvers <TPacket, TAddress> resolvers)
            {
                var resolverContainingOthers = resolvers;
                IEnumerable <CreateScopeResolverInformation> innenrResolvers = resolverContainingOthers.ExtractResolverCreateModels(resolverCreateModel, _serializer);

                foreach (CreateScopeResolverInformation item in innenrResolvers)
                {
                    Boolean childResult = IsResolverInformationValid(item);
                    if (childResult == false)
                    {
                        result = false;
                        break;
                    }
                }
            }

            return(result);
        }