//===================================================================== 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(); }
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(); } } }