Exemplo n.º 1
0
        public void Assign(DAL.IStatusDB statusDB, TextLog textlog, bool useMessage, int installID, TUFMANInstallation.ApplicationList appID)
        {
            if (localStatusDB != null)
            {
                localStatusDB = null;
            }

            if (textLog != null)
            {
                textLog = null;
            }

            localStatusDB  = statusDB;
            useMessageBox  = useMessage;
            installationID = installID;
            applicationID  = appID;
            textLog        = textlog;
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {//App_Start.NHibernateProfilerBootstrapper.PreStart();
            bool useCloud;

            //MessageBox.Show("1");
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            if (args.Length > 0)
            {
                RunMode = Convert.ToInt16(args[0]);

                //MessageBox.Show("Start mode is " + RunMode.ToString());
            }
            else
            {
                RunMode = 0;
            }

            Program.TextLogFile.WriteLog("Application started : mode=" + RunMode.ToString());


            // ---------------------------------------------------------------------------------------
            // initialisation of parameters
            // ---------------------------------------------------------------------------------------
            TufmanInstallationID = Properties.Settings.Default.tufman_installation_id;
            cloudStatusDB        = new CloudStatusDB(NHibernateHelper.OpenCloudSession());

            localStatusDB = new LocalStatusDB(NHibernateHelper.OpenLocalSession());

            ErrorHandler.Instance.Assign(localStatusDB, TextLogFile, (RunMode == 0), TufmanInstallationID, TUFMANInstallation.ApplicationList.TUFStatus);

            // ---------------------------------------------------------------------------------------
            // check connection to the local database
            // ---------------------------------------------------------------------------------------
            if (Program.localStatusDB.IsConnected)
            {
                //MessageBox.Show("Connected to the local DB");
            }
            else
            {
                ErrorHandler.Instance.HandleError(ActionLog.ActionTypes.Application, "", "Error:", "Not connected to local DB", false);
            }

            // ---------------------------------------------------------------------------------------
            // Check connection to the cloud
            // ---------------------------------------------------------------------------------------
            if (Program.cloudStatusDB.IsConnected)
            {
                useCloud = true;
            }
            else
            {
                useCloud = false;
                ErrorHandler.Instance.HandleError(ActionLog.ActionTypes.Application, "", "Error:", "Not connected to cloud DB", false);
            }

            // ---------------------------------------------------------------------------------------
            // get TUFMAN installation details, either from the cloud or local if no cloud connection
            // ---------------------------------------------------------------------------------------

            if (useCloud)
            {
                TUFStatus.Domain.Cloud.App.Installations installation;
                installation = (TUFStatus.Domain.Cloud.App.Installations)cloudStatusDB.GetInstallationDetails();

                if (installation == null)
                {
                    TUFStatus.Domain.Local.App.Installations installation2;
                    installation2 = (TUFStatus.Domain.Local.App.Installations)localStatusDB.GetInstallationDetails();
                    tufmanInstallation.SetInstallationDetails(installation2);
                }
                else
                {
                    tufmanInstallation.SetInstallationDetails(installation);
                    localStatusDB.SaveInstallationDetails(installation);
                }
            }
            else
            {
                TUFStatus.Domain.Local.App.Installations installation2;
                installation2 = (TUFStatus.Domain.Local.App.Installations)localStatusDB.GetInstallationDetails();
                tufmanInstallation.SetInstallationDetails(installation2);
            }


            // ---------------------------------------------------------------------------------------
            // Create connection log and get connection ID
            // ---------------------------------------------------------------------------------------

            if (useCloud)
            {
                cloudStatusDB.WriteConnectionLog();
            }

            // ---------------------------------------------------------------------------------------
            // run tasks
            // ---------------------------------------------------------------------------------------

            switch (RunMode)
            {
            case 0:        // manual
                Application.Run(new FormMain());
                break;

            case 1:         // partial
                RunRecon(0);
                RunPostEntryProcessing(0);
                break;

            case 2:         // full
                RunRecon(1);
                RunPostEntryProcessing(1);
                RunBackup(0);
                RunSync(0);
                break;

            case 3:         // SPC Sync mode
                RunSPCSync();
                break;
            }

            // transfer action and error logs if cloud connected
            if (useCloud)
            {
                localStatusDB.TransferActionLogs(cloudStatusDB);
                localStatusDB.TransferErrorLogs(cloudStatusDB);
            }

            // ---------------------------------------------------------------------------------------
            // tidy up
            // ---------------------------------------------------------------------------------------
            if (useCloud)
            {
                cloudStatusDB.WriteDisconnectionTime();
            }

            cloudStatusDB.CloseConnection();
            cloudStatusDB = null;

            localStatusDB.CloseConnection();
            localStatusDB = null;

            TextLogFile.WriteLog("Application ended");
            TextLogFile.Close();
        }