예제 #1
0
        public static WebApiControllingCacheData Data()
        {
            var data = HttpRuntime.Cache[Key] as WebApiControllingCacheData;

            if (data == null)
            {
                lock (_lock)
                {
                    data = HttpRuntime.Cache[Key] as WebApiControllingCacheData;

                    if (data == null)
                    {
                        var settingRepository = WebApiEngineContext.Resolve <IRepository <Setting> >();

                        data = new WebApiControllingCacheData
                        {
                            ValidMinutePeriod            = Convert.ToInt32(settingRepository.GetAll().Where(s => s.Name == "generalsettings.validminuteperiod").FirstOrDefault().Value),
                            NoRequestTimestampValidation = Convert.ToBoolean(settingRepository.GetAll().Where(s => s.Name == "generalsettings.norequesttimestampvalidation").FirstOrDefault().Value),
                            AllowEmptyMd5Hash            = Convert.ToBoolean(settingRepository.GetAll().Where(s => s.Name == "generalsettings.allowemptymd5hash").FirstOrDefault().Value),
                            LogUnauthorized = Convert.ToBoolean(settingRepository.GetAll().Where(s => s.Name == "generalsettings.logunauthorized").FirstOrDefault().Value)
                        };

                        HttpRuntime.Cache.Add(Key, data, null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null);
                    }
                }
            }
            return(data);
        }
예제 #2
0
        public static void Register(HttpConfiguration config)
        {
            //config.MessageHandlers.Add(new ResponseFormatHandler());

            config.EnableCors();

            // Web API configuration and services
            config.Services.Replace(typeof(IExceptionLogger), new UnhandledExceptionLogger());
            config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());

            //DI setup
            var builder = new ContainerBuilder();

            AutofacConfig.RegisterServices(builder);

            // Set the dependency resolver to be Autofac.
            var container = builder.Build();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            WebApiEngineContext.Initialize(container);

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.MapODataServiceRoute("ODataRoute", "odata", GenerateEntityDataModel());

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );
        }
        protected virtual User GetUser(string publicKey)
        {
            User user = null;

            try
            {
                user = WebApiEngineContext.Resolve <IRepository <User> >().GetAll().Where(u => u.PublicKey == publicKey).FirstOrDefault();
            }
            catch (Exception exc)
            {
                Debug.WriteLine(exc.StackTrace);
                Debug.WriteLine(exc.Message);
            }
            return(user);
        }