protected virtual void LicenseStatusChange(LicenseStatus oldObj, LicenseStatus newObj)
        {
            Action<LicenseStatusEventArg> handler = licenseChange;

            if (licenseChange != null)
            {
                LicenseStatusEventArg arg = new LicenseStatusEventArg();
                arg.oldStatus = oldObj;
                arg.NewStatus = newObj;
                licenseStatus = newObj;
                handler(arg);
            }
        }
        void licenseClient_licenseChange(LicenseStatusEventArg obj)
        {
            System.Diagnostics.Debug.WriteLine(obj.oldStatus + " And " +obj.NewStatus.ToString());
             
            switch (obj.NewStatus)
            {
                case LicenseStatus.joinLicense:
                    {
                        WriteLog("licenseChange 이벤트 발생 " + LicenseStatus.joinLicense.ToString());

                        Dispatcher.BeginInvoke(delegate(){
                           LicenseState.Fill = new SolidColorBrush(Colors.Blue);});
                    }
                    break;
                case LicenseStatus.fullLicense:
                    {
                        Dispatcher.BeginInvoke(delegate()
                        {
                            var parameters = new DialogParameters()
                            {
                                Content = LicenseStatus.fullLicense.ToString() + " 다음 라이센스까지 " +
                                licenseClient.nextLicenseTime,
                                Theme = new Windows8Theme()
                            };

                            RadWindow.Alert(parameters);

                            LicenseState.Fill = new SolidColorBrush(Colors.Yellow);
                        });

                        WriteLog("licenseChange 이벤트 발생 current is " + LicenseStatus.fullLicense.ToString());
                    }

                    break;
                case LicenseStatus.stopConnection:
                    {
                        WriteLog("licenseChange 이벤트 발생 " + LicenseStatus.stopConnection.ToString());
                        
                        Dispatcher.BeginInvoke(delegate(){
                            LicenseState.Fill = new SolidColorBrush(Colors.Red);});
                    }
                    break;
                case LicenseStatus.reConnectLicense:
                    {
                        WriteLog("licenseChange 이벤트 발생 " + LicenseStatus.reConnectLicense.ToString());

                        Dispatcher.BeginInvoke(delegate(){
                            LicenseState.Fill = new SolidColorBrush(Colors.Green);});
                    }
                    break;
                default:
                    break;
            }
        }