Esempio n. 1
0
        //=====================================================================


        public Form1()
        {
            InitializeComponent();
            this.onlineTView.ImageList = imageList1;
            _formInterface             = new FormInterface();
            _formInterface.InitiatlizeFormInterface(pBoxStatIndicator, onlineTView, offlineTView, btnSync, _configMenu.GetConfigInterface());

            _engine = new SyncEngine();
            _engine.InitializeEngine(_formInterface);

            offlineTView.ExpandAll();
            onlineTView.ExpandAll();
        }
Esempio n. 2
0
        public void InitializeEngine(FormInterface formInterface)
        {
            _formInterface   = formInterface;
            _sqLiteConnector = new SQLiteConnector(_sqLiteConnString);
            _formInterface   = formInterface;



            _timeManager = new SyncTimeManager();
            _timeManager.Init(this);



            SetConnectivityState();
            DatabaseDirectory.SetConnectors(_sqlServerConnector, _sqLiteConnector);


            _formInterface.SetCorrStatus((ConnectivityState)_connectivityStateEnum);

            //_client = new Client(_sqlServerConnector, _sqLiteConnector, _connectivityStateEnum);


            //Debug:
            _client = new Client(_sqlServerConnector, _sqLiteConnector, _connectivityStateEnum);
            _timeManager.RescheduleFromCronExpr(_client._cronExpression);

            if ((ConnectivityState)_connectivityStateEnum == ConnectivityState.Offline)
            {
                if (_client.IsSet)
                {
                    //start last set schedule by client (cronExpr from sqlite)
                    string cronExpr = _client.GetCron();

                    //_timeManager.RescheduleFromCronExpr(cronExpr);
                    _timeManager.StartScheduler(2);

                    //set interface depending on cronExpression
                    _formInterface.SetConfigInterfaceCron(cronExpr);
                }
                else
                {
                    //no sync for him
                }


                //disables interface for changing jobs

                //todo code for tree:
                SetOfflineTree();
                _formInterface.EnableOfflineTree(true);
                _formInterface.EnableOnlineTree(false);

                //throw new Exception("not yet configured");
            }
            else if ((ConnectivityState)_connectivityStateEnum == ConnectivityState.Online)
            {
                //launch job from cronExpr
                string cronExpr = _client.GetCron();
                //_timeManager.RescheduleFromCronExpr(cronExpr);
                _timeManager.StartScheduler(2);

                //Enable formInterface for change of cronEpxr


                //todo code to load tree
                int nonSyncedFiles   = _sqLiteConnector.ExecuteScalarQuery("SELECT COUNT(*) FROM Files WHERE is_synced = 0");
                int nonSyncedFolders = _sqLiteConnector.ExecuteScalarQuery("SELECT COUNT(*) FROM Folders WHERE is_synced = 0");

                if (nonSyncedFolders != 0 || nonSyncedFiles != 0)
                {
                    //formInterface --> disable sqlserver tree and enable sqlite tree
                    _formInterface.EnableOnlineTree(isEnabled: false);
                    _formInterface.EnableOfflineTree(isEnabled: true);

                    SetOnlineTree();
                    SetOfflineTree();

                    //bug prompt to sync and lock database if accepted to sync ??
                }
                else
                {
                    _formInterface.EnableOnlineTree(isEnabled: true);
                    _formInterface.EnableOfflineTree(isEnabled: false);
                    SetOnlineTree();
                }
            }
        }