Exemplo n.º 1
0
        public static HessianSerializationScheme CreateFromType(Type type, IObjectSerializerFactory factory)
        {
            var catalog = new Dictionary <Type, ISerializationElement>();
            var element = CreateSerializationElement(type, catalog, factory);

            return(new HessianSerializationScheme(type, element));
        }
Exemplo n.º 2
0
 public PageEditController(IContentLoader contentLoader,
                           IExternalReviewLinksRepository externalReviewLinksRepository,
                           IApprovalReviewsRepository approvalReviewsRepository,
                           ExternalReviewOptions externalReviewOptions, IObjectSerializerFactory serializerFactory)
 {
     _contentLoader = contentLoader;
     _externalReviewLinksRepository = externalReviewLinksRepository;
     _approvalReviewsRepository     = approvalReviewsRepository;
     _externalReviewOptions         = externalReviewOptions;
     _serializerFactory             = serializerFactory;
 }
Exemplo n.º 3
0
 public ExtendedProjectStore(ProjectRepository projectRepository,
                             ViewModelConverter viewModelConverter,
                             IProjectEnhancementsStore projectEnhancementsStore,
                             IObjectSerializerFactory objectSerializerFactory,
                             UIRoleProvider roleProvider,
                             ProjectOptions projectOptions)
 {
     _projectRepository        = projectRepository;
     _viewModelConverter       = viewModelConverter;
     _projectEnhancementsStore = projectEnhancementsStore;
     _roleProvider             = roleProvider;
     _projectOptions           = projectOptions;
     _objectSerializer         = objectSerializerFactory.GetSerializer(KnownContentTypes.Json);
 }
 public PageEditController(IContentLoader contentLoader,
                           IExternalReviewLinksRepository externalReviewLinksRepository,
                           IApprovalReviewsRepository approvalReviewsRepository,
                           ExternalReviewOptions externalReviewOptions, IObjectSerializerFactory serializerFactory,
                           UrlResolver urlResolver, PropertyResolver propertyResolver)
 {
     _contentLoader = contentLoader;
     _externalReviewLinksRepository = externalReviewLinksRepository;
     _approvalReviewsRepository     = approvalReviewsRepository;
     _externalReviewOptions         = externalReviewOptions;
     _serializerFactory             = serializerFactory;
     _urlResolver      = urlResolver;
     _propertyResolver = propertyResolver;
 }
Exemplo n.º 5
0
        public PageEditController(IContentLoader contentLoader,
                                  IExternalReviewLinksRepository externalReviewLinksRepository,
                                  IApprovalReviewsRepository approvalReviewsRepository,
                                  ExternalReviewOptions externalReviewOptions, IObjectSerializerFactory serializerFactory,
                                  StartPageUrlResolver startPageUrlResolver, PropertyResolver propertyResolver)
        {
            _contentLoader = contentLoader;
            _externalReviewLinksRepository = externalReviewLinksRepository;
            _approvalReviewsRepository     = approvalReviewsRepository;
            _externalReviewOptions         = externalReviewOptions;
            _serializerFactory             = serializerFactory;
            _startPageUrlResolver          = startPageUrlResolver;
            _propertyResolver = propertyResolver;

            approvalReviewsRepository.OnBeforeUpdate += ApprovalReviewsRepository_OnBeforeUpdate;
        }
 public ReviewLocationParser(IObjectSerializerFactory objectSerializerFactory)
 {
     _objectSerializer = objectSerializerFactory.GetSerializer(KnownContentTypes.Json);
 }
Exemplo n.º 7
0
 public ReviewContentNotificationFormatter(IObjectSerializerFactory objectSerializerFactory)
 {
     _objectSerializer = objectSerializerFactory.GetSerializer(KnownContentTypes.Json);
 }
Exemplo n.º 8
0
        private static ISerializationElement BuildClassSerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory)
        {
            if (catalog.TryGetValue(type, out var existing))
            {
                return(existing);
            }

            var contract = type.GetCustomAttribute <DataContractAttribute>();

            if (null == contract)
            {
                throw new HessianSerializerException();
            }

            var properties = new List <PropertyElement>();
            var element    = new ObjectElement(type, properties);

            catalog.Add(type, element);

            foreach (var property in type.GetDeclaredProperties())
            {
                var attribute = property.GetCustomAttribute <DataMemberAttribute>();

                if (null == attribute)
                {
                    continue;
                }

                if (!property.CanRead || !property.CanWrite)
                {
                    continue;
                }

                properties.Add(new PropertyElement(
                                   property,
                                   CreateSerializationElement(property.PropertyType, catalog, factory)
                                   ));
            }

            properties.Sort(new ObjectPropertyComparer());

            return(element);
        }
Exemplo n.º 9
0
        private static ISerializationElement CreateSerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory)
        {
            if (type.IsSimpleType())
            {
                var serializer = factory.GetSerializer(type);
                return(new ValueElement(type, serializer));
            }

            if (type.IsTypedArray())
            {
                return(BuildArraySerializationElement(type, catalog, factory));
            }

            if (type.IsTypedList())
            {
                return(BuildListSerializationElement(type, catalog, factory));
            }

            if (type.IsTypedCollection())
            {
                return(BuildCollectionSerializationElement(type, catalog, factory));
            }

            if (type.IsTypedEnumerable())
            {
                return(BuildEnumerableSerializationElement(type, catalog, factory));
            }

            return(BuildClassSerializationElement(type, catalog, factory));
        }
Exemplo n.º 10
0
        private static ISerializationElement BuildEnumerableSerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory)
        {
            var elementType = type.GetGenericTypeArgument();

            return(new VariableLengthTypedListElement(
                       typeof(IEnumerable <>).MakeGenericType(elementType),
                       CreateSerializationElement(elementType, catalog, factory)
                       ));
        }
Exemplo n.º 11
0
        private static ISerializationElement BuildArraySerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory)
        {
            if (1 != type.GetArrayRank())
            {
                throw new HessianSerializerException();
            }

            var elementType = type.GetElementType();

            if (typeof(object) == elementType)
            {
                // untyped
            }

            return(new FixedLengthTypedListElement(
                       elementType.MakeArrayType(1),
                       CreateSerializationElement(elementType, catalog, factory)
                       ));
        }
Exemplo n.º 12
0
 public DdsApprovalReviewsRepository(DynamicDataStoreFactory dataStoreFactory, IObjectSerializerFactory serializerFactory)
 {
     _dataStoreFactory  = dataStoreFactory;
     _serializerFactory = serializerFactory;
 }
Exemplo n.º 13
0
        public static HessianSerializationScheme CreateFromMethod(MethodInfo methodInfo, IObjectSerializerFactory factory)
        {
            var catalog         = new Dictionary <Type, ISerializationElement>();
            var element         = new MethodCallElement(methodInfo);
            var methodArguments = methodInfo.GetParameters();

            foreach (var argument in methodArguments)
            {
                var argumentElement = CreateSerializationElement(argument.ParameterType, catalog, factory);
                element.Arguments.Add(argumentElement);
            }

            return(new HessianSerializationScheme(null, element));
        }
Exemplo n.º 14
0
        private static ISerializationElement BuildCollectionSerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory)
        {
            var elementTypes = type.GetGenericArguments();

            return(new FixedLengthTypedListElement(
                       typeof(ICollection <>).MakeGenericType(elementTypes[0]),
                       CreateSerializationElement(elementTypes[0], catalog, factory)
                       ));
        }
Exemplo n.º 15
0
        private static ISerializationElement BuildArraySerializationElement(Type type, IDictionary <Type, ISerializationElement> catalog, IObjectSerializerFactory factory)
        {
            if (1 != type.GetArrayRank())
            {
                throw new HessianSerializerException();
            }

            if (type.HasElementType)
            {
                var elementType = type.GetElementType();

                if (typeof(object) != elementType)
                {
                    return(new FixedLengthTypedListElement(
                               elementType.MakeArrayType(1),
                               CreateSerializationElement(elementType, catalog, factory)
                               ));
                }
            }

            //var itemType = type.GetElementType();

            /*return new FixedLengthGenericArrayElement(
             *  elementType.MakeArrayType(1),
             *  CreateSerializationElement(elementType, catalog, factory)
             * );*/

            throw new NotSupportedException();
        }