Beispiel #1
0
		// 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.");
			}
		}
Beispiel #2
0
        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.");
                }
            }
        }