Exemple #1
0
        // Used for searching
        public JsonResult Autocomplete(string q)
        {
            Devmasters.Cache.LocalMemory.AutoUpdatedLocalMemoryCache <Index <Autocomplete> > FullTextSearchCache =
                new Devmasters.Cache.LocalMemory.AutoUpdatedLocalMemoryCache <Index <Autocomplete> >(
                    TimeSpan.FromDays(1),
                    "FulltextSearchForAutocomplete_main",
                    o =>
            {
                return(BuildSearchIndex());
            });

            var searchCache = FullTextSearchCache.Get();

            var searchResult = searchCache.Search(q, 5, ac => ac.Priority);

            return(Json(searchResult.Select(r => r.Original), JsonRequestBehavior.AllowGet));
        }
Exemple #2
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            GlobalConfiguration.Configure(WebApiConfig.Register);


            BannedIPs = new Devmasters.Cache.LocalMemory.AutoUpdatedLocalMemoryCache <string[]>(
                TimeSpan.FromSeconds(30), "BannedIPs", (obj) =>
            {
                var ret = new System.Collections.Generic.List <string>();
                try
                {
                    using (Devmasters.PersistLib p = new Devmasters.PersistLib())
                    {
                        //p.ExecuteNonQuery(Devmasters.Config.GetWebConfigValue("CnnString"),
                        //     System.Data.CommandType.Text, "delete from BannedIPs where expiration < GetDate()", null);

                        var ds = p.ExecuteDataset(Devmasters.Config.GetWebConfigValue("CnnString"),
                                                  System.Data.CommandType.Text, "select IP from BannedIPs where Expiration is null or expiration > GetDate()",
                                                  null);
                        foreach (System.Data.DataRow dr in ds.Tables[0].Rows)
                        {
                            ret.Add(((string)dr[0]).ToLower());
                        }
                    }
                }
                catch (Exception e)
                {
                    HlidacStatu.Util.Consts.Logger.Error("Global.asax BannedIP db query", e);
                }
                return(ret.ToArray());
            }
                );

            //if (ValueProviderFactories.Factories.Any(m => m.GetType() == typeof(System.Web.Mvc.JsonValueProviderFactory)))
            //{
            //    var f = ValueProviderFactories.Factories.Where(m => m.GetType() == typeof(System.Web.Mvc.JsonValueProviderFactory)).FirstOrDefault();
            //    if (f != null)
            //        ValueProviderFactories.Factories.Remove(f);
            //}

            var formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;

            formatter.SerializerSettings = new Newtonsoft.Json.JsonSerializerSettings()
            {
                Formatting        = Formatting.None,
                NullValueHandling = NullValueHandling.Ignore,
                //ContractResolver = new HlidacStatu.Util.FirstCaseLowercaseContractResolver()
            };

            formatter.MediaTypeMappings
            .Add(new System.Net.Http.Formatting.RequestHeaderMapping("Accept",
                                                                     "text/html",
                                                                     StringComparison.InvariantCultureIgnoreCase,
                                                                     true,
                                                                     "application/json"));

            //System.Web.Hosting.HostingEnvironment.RegisterVirtualPathProvider(new Framework.DataSetsVirtualPathProvider());


            HlidacStatu.Lib.Init.Initialise();
        }