public void GetTermsThatNeedToBeAdded() { var termsManager = new Lpp.QueryComposer.TermRegistration.TermsRegistrationManager(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "PluginsBase"), PackagesFolder); termsManager.Run(); Console.WriteLine(DateTime.Now.ToString()); }
protected void Application_Start() { //force load all assemblies to ensure availability var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies().ToList(); loadedAssemblies .SelectMany(x => x.GetReferencedAssemblies()) .Distinct() .Where(y => loadedAssemblies.Any((a) => a.FullName == y.FullName) == false) .ToList() .ForEach(x => loadedAssemblies.Add(AppDomain.CurrentDomain.Load(x))); //This initializes the data context and force loads all of the DLLs that are being lazy loaded. using (var db = new DataContext()) { db.Users.Where(u => u.ID == Guid.Empty).FirstOrDefault(); } RouteTable.Routes.Clear(); AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); WebApiConfig.Register(GlobalConfiguration.Configuration); GlobalConfiguration.Configuration.AddODataQueryFilter(); GlobalConfiguration.Configuration.EnableCors(new EnableCorsAttribute("*", "*", "*")); //Add basic auth. All functions are secure by default unless otherwise attributed with allowanonymous GlobalConfiguration.Configuration.MessageHandlers.Add(new BasicAuthenticationHandler <DataContext, PermissionDefinition>()); GlobalConfiguration.Configuration.Filters.Add(new BasicAuthentication()); //Validation so that intelligent errors are returned. GlobalConfiguration.Configuration.Filters.Add(new ValidationActionFilter()); GlobalConfiguration.Configuration.Filters.Add(new UnwrapExceptionFilterAttribute()); log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config"))); //SSL Requirement GlobalConfiguration.Configuration.MessageHandlers.Add(new RequireHttpsMessageHandler()); //Fix for jquery returning error on OK/Accept if no json content included even if just {} GlobalConfiguration.Configuration.MessageHandlers.Add(new HttpResponseMessageHandler()); //Remove the default json formatter that is broken. GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.JsonFormatter); //Add our Json formatter that works properly including with Dates //Insert makes it the first choice for serialization, however the end user can request xml as well. GlobalConfiguration.Configuration.Formatters.Insert(0, new JsonNetFormatter()); #if (DEBUG) //GlobalConfiguration.Configuration.EnableSystemDiagnosticsTracing(); ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate); #else this.Error += WebApiApplication_Error; #endif RouteTable.Routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); GlobalConfiguration.Configuration.EnsureInitialized(); //Registers the notifier that will send emails etc on notifications. DataContext.RegisteryNotifier(new Notifier()); //IModelTerm interrogation System.Threading.Tasks.Task.Run(() => { string appDomainFolder = System.Web.Configuration.WebConfigurationManager.AppSettings["TermsRegistrationManager.AppDomainRoot"] ?? string.Empty; if (string.IsNullOrEmpty(appDomainFolder)) { appDomainFolder = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"App_Data\Plugins"); } string packagesFolder = System.Web.Configuration.WebConfigurationManager.AppSettings["AdapterPackages.Folder"] ?? string.Empty; if (string.IsNullOrEmpty(packagesFolder)) { packagesFolder = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data"); } using (var mgr = new Lpp.QueryComposer.TermRegistration.TermsRegistrationManager(appDomainFolder, packagesFolder)) { mgr.Run(); } string uploadPath = System.Web.Configuration.WebConfigurationManager.AppSettings["DocumentsUploadFolder"] ?? string.Empty; if (string.IsNullOrEmpty(uploadPath)) { uploadPath = Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data\\Uploads\\"); } if (Directory.Exists(uploadPath)) { var files = Directory.GetFiles(uploadPath, "*.*", SearchOption.AllDirectories); foreach (var file in files) { FileInfo fi = new FileInfo(file); if (fi.LastAccessTime < DateTime.Now.AddHours(-12)) { fi.Delete(); } } } }); }