protected override void OnStop()
 {
     if (serviceHost != null)
     {
         serviceHost.Close();
         serviceHost = null;
         SNService.writeLog("Service Stopped @ " + DateTime.Now.ToString());
         //Trace.main.note("Stopped SN Service");
     }
 }
        private void readMessage(byte[] content)
        {
            DataContractJsonSerializer serial = new DataContractJsonSerializer(typeof(Tokens));
            Tokens result = new Tokens();

            using (var ms = new MemoryStream(content))
            {
                result = (Tokens)serial.ReadObject(ms);
            }

            //Trace.oauth.note("Access Token: {}", result.access_token);
            accToken     = result.access_token;
            refreshToken = result.refresh_token;
            expires_in   = result.expires_in;
            refreshTime  = new Stopwatch();
            refreshTime.Start();
            SNService.writeLog("renewed oauth");
            //Trace.oauth.note("Expires: {}", expires_in);
        }
        // Start the Windows service.
        protected override void OnStart(string[] args)
        {
            try
            {
                //I3Trace.initialize_default_sinks();
                if (serviceHost != null)
                {
                    serviceHost.Close();
                }

                serviceHost = new ServiceHost(typeof(SNService));
                serviceHost.Open();
                SNService.writeLog("Started Service @ " + DateTime.Now.ToString());
                //Trace.main.note("Starting SN Connector");
            }
            catch (Exception ex)
            {
                //Trace.main.note(ex.Message);
                Console.WriteLine(ex.Message);
            }
        }
        private bool validKey()
        {
            if (String.IsNullOrEmpty(accToken))
            {
                return(false);
            }
            if (String.IsNullOrEmpty(refreshToken))
            {
                return(false);
            }
            if (String.IsNullOrEmpty(refreshToken))
            {
                return(false);
            }
            var diff = expires_in - refreshTime.Elapsed.Seconds;

            //Trace.oauth.note("Token valid time left : {}", diff);
            SNService.writeLog("Diff Time: " + diff);
            if (diff < 60)
            {
                return(false);
            }
            return(true);
        }