Esempio n. 1
0
        public override object ProvideValue(IServiceProvider serviceProvider)
        {
            ValidationHelper.NotNull(serviceProvider, "serviceProvider");
            var rootObjectProvider = serviceProvider.GetService(typeof(IRootObjectProvider)) as IRootObjectProvider;

            if (rootObjectProvider == null)
            {
                throw new InvalidOperationException(string.Format(ServiceException, GetType().Name, "IRootObjectProvider"));
            }
            if (rootObjectProvider.RootObject is ResourceDictionary)
            {
                var ret1 = StaticResource.ProvideValue(serviceProvider);
                return(ret1);
            }
            var themeInfo = ResourceInfoAttribute.FromAssembly(rootObjectProvider.RootObject.GetType().Assembly);

            if (themeInfo != null)
            {
                switch (themeInfo.Mode)
                {
                case ResourceMode.Static:
                    var ret2 = StaticResource.ProvideValue(serviceProvider);
                    return(ret2);

                case ResourceMode.Dynamic:
                    var ret3 = DynamicResource.ProvideValue(serviceProvider);
                    return(ret3);
                }
            }
            throw new InvalidOperationException("You must mark your assembly with Elysium.ResourceInfo attribute or use Elysium.ResourceDictionary");
        }
Esempio n. 2
0
 public bool TryGetResourceInfoForType(Type type, out ResourceInfoAttribute resourceInfo)
 {
     resourceInfo =
         type.GetCustomAttributes(typeof(ResourceInfoAttribute), false)
         .OfType <ResourceInfoAttribute>()
         .FirstOrDefault();
     return(resourceInfo != null);
 }
Esempio n. 3
0
        public ClientType(Type mappedTypeInstance, ITypeResolver typeMapper)
            : base(typeMapper, mappedTypeInstance)
        {
            //SerializationMode = TypeSerializationMode.Complex;

            resourceInfo = mappedTypeInstance
                .GetCustomAttributes(typeof (ResourceInfoAttribute), false)
                .OfType<ResourceInfoAttribute>()
                .First();
        }
        public void OnActionExecuted(ActionExecutedContext context)
        {
            string prevtype = string.Empty;

            if (context.HttpContext.Response.Headers.ContainsKey(HeaderNames.ContentType))
            {
                prevtype = context.HttpContext.Response.Headers[HeaderNames.ContentType];
            }

            // Don't process responses that have already have resource info or don't have json payloads
            if (prevtype.Contains("vnd") || !prevtype.Contains("json"))
            {
                return;
            }

            IModule mod = Environment.Host.GetModuleByAssemblyName(context.Controller.GetType().GetTypeInfo().Assembly.FullName);

            string version = mod != null ? mod.Version : string.Empty;

            context.HttpContext.Response.Headers[HeaderNames.ContentType] = ResourceInfoAttribute.ContentType(string.Empty, version, prevtype);
        }
Esempio n. 5
0
 public bool TryGetResourceInfoForType(Type type, out ResourceInfoAttribute resourceInfo)
 {
     return ResourceInfoAttribute.TryGet(type, out resourceInfo);
 }