예제 #1
0
        public object Clone()
        {
            PartitionKeyConfiguration partitionKeyConfiguration = new PartitionKeyConfiguration();

            partitionKeyConfiguration.PartitionKeyAttributes = PartitionKeyAttributes != null ? new Dictionary <string, PartitionKeyConfigurationAttribute>(_partitionKeyConfs) : null;
            return(partitionKeyConfiguration);
        }
예제 #2
0
        public static void ValidateConfiguration(PartitionKeyConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new Exception("PartitionKey Configuration cannot be null.");
            }

            foreach (var pair in configuration.PartitionKeyAttributes)
            {
                if (pair.Key == null)
                {
                    throw new Exception("ParitionKey Attribute Key cannot be null.");
                }
                if (pair.Key.Trim() == "")
                {
                    throw new Exception("PartitionKey Attribute Key cannot be empty string.");
                }

                PartitionKeyConfigurationAttribute.ValidateConfiguration(pair.Value);
            }
        }
예제 #3
0
        public static void ValidateConfiguration(CollectionConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new Exception("Collection Configuration cannot be null.");
            }
            if (configuration.CollectionName == null)
            {
                throw new Exception("Collection Name cannot be null.");
            }
            if (configuration.CollectionName.Trim() == "")
            {
                throw new Exception("Collection Name cannot be empty string.");
            }

            //TODO Validate valid collection type and distribution configuration
            DistributionStrategyConfiguration.ValidateConfiguration(configuration.DistributionStrategy);

            //Optionals
            if (configuration.PartitionKey != null)
            {
                PartitionKeyConfiguration.ValidateConfiguration(configuration.PartitionKey);
            }
            if (configuration.Caching != null)
            {
                CachingConfiguration.ValidateConfiguration(configuration.Caching);
            }
            if (configuration.EvictionConfiguration != null)
            {
                EvictionConfiguration.ValidateConfiguration(configuration.EvictionConfiguration);
            }
            if (configuration.Indices != null)
            {
                Indices.ValidateConfiguration(configuration.Indices);
            }
        }