// http://www.asp.net/aspnet/samples/owin-katana //http://localhost:54321 //http://localhost:54321/api/values //http://localhost:54321/api/geocode?street_address=123 main street&city=los angeles&state=ca&zip=90007 //http://localhost:54321/api/session?userid=mmrds&password=mmrds //http://localhost:54321/api/session?userid=user1&password=password //http://localhost:54321/api/session //http://localhost:54321/swagger/docs/v1 //http://localhost:54321/sandbox/index //http://localhost:54321/api/census?state=06&county=037&tract=224700 static void Main(string[] args) { for(int i = 0; i < args.Length; i++) { switch (args [i].ToLower()) { case "set_is_environment_based_true": System.Configuration.ConfigurationManager.AppSettings ["is_environment_based"] = "true"; break; case "set_is_environment_based_false": System.Configuration.ConfigurationManager.AppSettings ["is_environment_based"] = "false"; break; default: Console.WriteLine ("unsued command line argument: Arg[{0}] = [{1}]", i, args [i]); break; } } #if (FILE_WATCHED) Console.WriteLine ("starting file watch."); WatchFiles.StartWatch(); #endif //data_access da = new data_access (); //da.login ("mmrds","mmrds"); #if (DEBUG) if (bool.Parse (System.Configuration.ConfigurationManager.AppSettings ["is_environment_based"])) { /* System.Environment.SetEnvironmentVariable("geocode_api_key","7c39ae93786d4aa3adb806cb66de51b8"); System.Environment.SetEnvironmentVariable("couchdb_url", "http://localhost:5984"); System.Environment.SetEnvironmentVariable("web_site_url", "http://localhost:54321"); System.Environment.SetEnvironmentVariable("file_root_folder", "/vagrant/source-code/scratch/owin/owin/psk/app"); */ } #endif string url = null; if (bool.Parse (System.Configuration.ConfigurationManager.AppSettings ["is_environment_based"])) { System.Console.WriteLine ("using Environment"); System.Console.WriteLine ("geocode_api_key: {0}", System.Environment.GetEnvironmentVariable ("geocode_api_key")); System.Console.WriteLine ("couchdb_url: {0}", System.Environment.GetEnvironmentVariable ("couchdb_url")); System.Console.WriteLine ("web_site_url: {0}", System.Environment.GetEnvironmentVariable ("web_site_url")); System.Console.WriteLine ("file_root_folder: {0}", System.Environment.GetEnvironmentVariable ("file_root_folder")); url = System.Environment.GetEnvironmentVariable ("web_site_url"); } else { System.Console.WriteLine("using AppSettings"); System.Console.WriteLine("geocode_api_key: {0}", System.Configuration.ConfigurationManager.AppSettings["geocode_api_key"]); System.Console.WriteLine("couchdb_url: {0}", System.Configuration.ConfigurationManager.AppSettings["couchdb_url"]); System.Console.WriteLine("web_site_url: {0}", System.Configuration.ConfigurationManager.AppSettings["web_site_url"]); System.Console.WriteLine("file_root_folder: {0}", System.Configuration.ConfigurationManager.AppSettings["file_root_folder"]); url = System.Configuration.ConfigurationManager.AppSettings["web_site_url"]; } Microsoft.Owin.Hosting.WebApp.Start(url); Console.WriteLine("Listening at " + url); if (bool.Parse (System.Configuration.ConfigurationManager.AppSettings ["is_environment_based"])) { bool stay_on_till_power_fail = true; while(stay_on_till_power_fail) { } } else { //http://odetocode.com/blogs/scott/archive/2014/02/10/building-a-simple-file-server-with-owin-and-katana.aspx string read_line = Console.ReadLine(); while (string.IsNullOrWhiteSpace(read_line) || read_line.ToLower () != "quit") { read_line = Console.ReadLine(); } System.Console.WriteLine ("Quit command recieved shutting down."); } }
protected override void OnStart(string[] args) { #if (FILE_WATCHED) Console.WriteLine("starting file watch."); WatchFiles.StartWatch(); #endif if (bool.Parse(System.Configuration.ConfigurationManager.AppSettings ["is_environment_based"])) { System.Console.WriteLine("using Environment"); System.Console.WriteLine("geocode_api_key: {0}", System.Environment.GetEnvironmentVariable("geocode_api_key")); System.Console.WriteLine("geocode_api_url: {0}", System.Environment.GetEnvironmentVariable("geocode_api_url")); System.Console.WriteLine("couchdb_url: {0}", System.Environment.GetEnvironmentVariable("couchdb_url")); System.Console.WriteLine("web_site_url: {0}", System.Environment.GetEnvironmentVariable("web_site_url")); System.Console.WriteLine("export_directory: {0}", System.Environment.GetEnvironmentVariable("export_directory")); Program.config_geocode_api_key = System.Environment.GetEnvironmentVariable("geocode_api_key"); Program.config_geocode_api_url = System.Environment.GetEnvironmentVariable("geocode_api_url"); Program.config_couchdb_url = System.Environment.GetEnvironmentVariable("couchdb_url"); Program.config_web_site_url = System.Environment.GetEnvironmentVariable("web_site_url"); Program.config_file_root_folder = System.Environment.GetEnvironmentVariable("file_root_folder"); Program.config_timer_user_name = System.Environment.GetEnvironmentVariable("timer_user_name"); Program.config_timer_password = System.Environment.GetEnvironmentVariable("timer_password"); Program.config_cron_schedule = System.Environment.GetEnvironmentVariable("cron_schedule"); Program.config_export_directory = System.Environment.GetEnvironmentVariable("export_directory") != null?System.Environment.GetEnvironmentVariable("export_directory") : "/workspace/export"; } else { System.Console.WriteLine("using AppSettings"); System.Console.WriteLine("geocode_api_key: {0}", System.Configuration.ConfigurationManager.AppSettings ["geocode_api_key"]); System.Console.WriteLine("geocode_api_url: {0}", System.Configuration.ConfigurationManager.AppSettings ["geocode_api_url"]); System.Console.WriteLine("couchdb_url: {0}", System.Configuration.ConfigurationManager.AppSettings ["couchdb_url"]); System.Console.WriteLine("web_site_url: {0}", System.Configuration.ConfigurationManager.AppSettings ["web_site_url"]); System.Console.WriteLine("export_directory: {0}", System.Configuration.ConfigurationManager.AppSettings ["export_directory"]); Program.config_geocode_api_key = System.Configuration.ConfigurationManager.AppSettings ["geocode_api_key"]; Program.config_geocode_api_url = System.Configuration.ConfigurationManager.AppSettings ["geocode_api_url"]; Program.config_couchdb_url = System.Configuration.ConfigurationManager.AppSettings ["couchdb_url"]; Program.config_web_site_url = System.Configuration.ConfigurationManager.AppSettings ["web_site_url"]; Program.config_file_root_folder = System.Configuration.ConfigurationManager.AppSettings ["file_root_folder"]; Program.config_timer_user_name = System.Configuration.ConfigurationManager.AppSettings ["timer_user_name"]; Program.config_timer_password = System.Configuration.ConfigurationManager.AppSettings ["timer_password"]; Program.config_cron_schedule = System.Configuration.ConfigurationManager.AppSettings ["cron_schedule"]; Program.config_export_directory = System.Configuration.ConfigurationManager.AppSettings ["export_directory"]; } System.Net.ServicePointManager.CertificatePolicy = new mmria.server.util.NoCheckCertificatePolicy(); Program.is_processing_export_queue = false; Program.is_processing_syncronization = false; /* * if (!System.IO.Directory.Exists (Program.config_export_directory)) * { * * System.IO.Directory.CreateDirectory (Program.config_export_directory); * }*/ // **** Web Server - Start Microsoft.Owin.Hosting.WebApp.Start(Program.config_web_site_url); Console.WriteLine("Web Server Listening at " + Program.config_web_site_url); Program.DateOfLastChange_Sequence_Call = new List <DateTime> (); Program.Change_Sequence_Call_Count++; Program.DateOfLastChange_Sequence_Call.Add(DateTime.Now); StdSchedulerFactory sf = new StdSchedulerFactory(); Program.sched = sf.GetScheduler(); DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(null, 15); IJobDetail check_for_changes_job = JobBuilder.Create <mmria.server.model.check_for_changes_job> () .WithIdentity("check_for_changes_job", "group1") .Build(); string cron_schedule = Program.config_cron_schedule; Program.check_for_changes_job_trigger = (ITrigger)TriggerBuilder.Create() .WithIdentity("check_for_changes_job_trigger", "group1") .StartAt(startTime) .WithCronSchedule(cron_schedule) .Build(); DateTimeOffset?check_for_changes_job_ft = sched.ScheduleJob(check_for_changes_job, Program.check_for_changes_job_trigger); IJobDetail rebuild_queue_job = JobBuilder.Create <mmria.server.model.rebuild_queue_job> () .WithIdentity("rebuild_queue_job", "group2") .Build(); string rebuild_queue_job_cron_schedule = "0 0 0 * * ?"; // at midnight every 24 hours Program.rebuild_queue_job_trigger = (ITrigger)TriggerBuilder.Create() .WithIdentity("rebuild_queue_job_trigger", "group2") .StartAt(startTime) .WithCronSchedule(rebuild_queue_job_cron_schedule) .Build(); DateTimeOffset?rebuild_queue_job_ft = sched.ScheduleJob(rebuild_queue_job, Program.rebuild_queue_job_trigger); try { this.Startup(); System.Console.Write("Trace Post this.Startup ()"); } catch (Exception ex) { System.Console.Write($"Program.OnStart error {ex}"); } if (!config_is_service) { System.Console.Write("Trace !config_is_service"); if (bool.Parse(System.Configuration.ConfigurationManager.AppSettings ["is_environment_based"])) { System.Console.Write("Trace is_environment_based"); bool stay_on_till_power_fail = true; while (stay_on_till_power_fail) { } } else { System.Console.Write("Trace !is_environment_based"); //http://odetocode.com/blogs/scott/archive/2014/02/10/building-a-simple-file-server-with-owin-and-katana.aspx string read_line = Console.ReadLine(); while (string.IsNullOrWhiteSpace(read_line) || read_line.ToLower() != "quit") { read_line = Console.ReadLine(); } if (sched != null) { sched.Clear(); sched.Shutdown(); } System.Console.WriteLine("Quit command recieved shutting down."); } } }