protected IEnumerable <uSyncDependency> GetPropertyDependencies(JObject value,
                                                                        IContentType docType, DependencyFlags flags)
        {
            var dependencies = new List <uSyncDependency>();

            foreach (var propertyType in docType.CompositionPropertyTypes)
            {
                var propertyValue = value[propertyType.Alias];
                if (propertyValue == null)
                {
                    continue;
                }

                var dataType = dataTypeService.GetDataType(propertyType.DataTypeKey);
                if (dataType == null)
                {
                    continue;
                }

                var mapper = SyncValueMapperFactory.GetMapper(dataType.EditorAlias);
                if (mapper == null)
                {
                    continue;
                }

                dependencies.AddRange(mapper.GetDependencies(propertyValue, dataType.EditorAlias, flags));
            }

            return(dependencies);
        }
        /// <summary>
        ///  get all the dependencies for a series of properties
        /// </summary>
        /// <param name="properties">Key, Value pair, of editorAlias, value</param>
        protected IEnumerable <uSyncDependency> GetPropertyDependencies(
            IDictionary <string, object> properties, DependencyFlags flags)
        {
            var dependencies = new List <uSyncDependency>();

            if (properties.Any())
            {
                foreach (var property in properties)
                {
                    var mapper = SyncValueMapperFactory.GetMapper(property.Key);
                    if (mapper != null)
                    {
                        dependencies.AddRange(mapper.GetDependencies(property.Value, property.Key, flags));
                    }
                }
            }

            return(dependencies);
        }