コード例 #1
0
ファイル: MainFrm.cs プロジェクト: KeliBox/CK_Sync
        /// <summary>
        /// Btn_StartSyn_Click
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_StartSyn_Click(object sender, EventArgs e)
        {
            try
            {
                #region 是否开启Debug
                ///开启Debug模式
                Sync.SetDebug(Boolean.Parse(Config.GetConfigValue("Debug")));

                #endregion
                //SyncEventHandler syncEn = new SyncEventHandler(SynDatas);
                SyncEventHandler syncEn = new SyncEventHandler(SyncData);
                syncEn.BeginInvoke(new AsyncCallback(RunCallBack), null);

                frmSyn.sMessage = "操作正在执行中,请稍候...";
                frmSyn.ShowDialog();

                //SynUsers(Convert.ToInt32(strSynType));
            }
            catch (Exception ex)
            {
                //throw ex;
                Log.WriteLog(ex.Message);
                MessageBox.Show(Sync.errorMsg.ToString());
            }
        }
コード例 #2
0
        /// <summary>
        /// 读串口线程
        /// </summary>
        public static void Read()
        {
            while (isContinue)
            {
                try
                {
                    if (SyncSerialPort.IsOpen)
                    {
                        string message = SyncSerialPort.ReadTo(",END");

                        EventsClass.GpsEventArgs e       = new EventsClass.GpsEventArgs(message);
                        SyncEventHandler         handler = SyncLogEvent;
                        if (handler != null)
                        {
                            handler(null, e);
                        }
                    }
                }
                catch (Exception MyEx)
                {
                    //MessageBox.Show(MyEx.Message + ":" + MyEx.StackTrace);
                    isContinue = false;
                }
            }
        }
コード例 #3
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
        public void LoadSolution(bool clearCache, bool syncAfterLoad, SyncEventHandler handler)
        {
            _syncAfterLoad = syncAfterLoad;

            if (!clearCache && !DbContext.Current.Database.IsSynced())
            {
                clearCache = true;
            }

            if (clearCache)
            {
                DbContext.Current.CreateDatabase();
            }
            else
            {
                LogManager.Logger.ScheduledClear();
            }

            if (!clearCache)
            {
                DbContext.Current.Database.OnStart();
                LoadAsync(handler);
            }
            else
            {
                RefreshAsync(handler);
            }
        }
コード例 #4
0
        /// <summary>
        /// Adds the event handler to the manager.
        /// </summary>
        /// <param name='handler'>
        /// Handler to add.
        /// </param>
        public void AddEventHandler(SyncEventHandler handler) {
            // The zero-based index of item in the sorted List<T>,
            // if item is found; otherwise, a negative number that
            // is the bitwise complement of the index of the next
            // element that is larger than item or.
            int pos = this.handler.BinarySearch(handler);
            if (pos < 0) {
                pos = ~pos;
            }

            this.handler.Insert(pos, handler);
        }
コード例 #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CmisSync.Lib.Events.RequestIgnoredEvent"/> class.
        /// </summary>
        /// <param name="ignoredEvent">Ignored event.</param>
        /// <param name="reason">Reason why it has been ignored.</param>
        /// <param name="source">The source which ignored the event.</param>
        public RequestIgnoredEvent(ISyncEvent ignoredEvent, string reason = null, SyncEventHandler source = null) {
            if (ignoredEvent == null) {
                throw new ArgumentNullException("ignoredEvent");
            }

            if (reason == null && source == null) {
                throw new ArgumentNullException("There must be a reason or source given for the ignored event");
            }

            this.IgnoredEvent = ignoredEvent;
            this.Reason = (reason != null) ? reason : "Event has been ignored by: " + source.ToString();
        }
コード例 #6
0
 public SingleStepEventQueue(
     ISyncEventManager manager,
     IEventCounter fullCounter     = null,
     IEventCounter categoryCounter = null)
 {
     this.Manager                = manager;
     this.fullCounter            = fullCounter ?? new QueuedEventsCounter();
     this.categoryCounter        = categoryCounter ?? new QueuedCategorizedEventsCounter();
     this.dropAllFsEventsHandler = new GenericSyncEventHandler <IFSEvent>(
         int.MaxValue,
         delegate(ISyncEvent e) {
         return(true);
     });
 }
コード例 #7
0
 public SingleStepEventQueue(
     ISyncEventManager manager,
     IEventCounter fullCounter = null,
     IEventCounter categoryCounter = null)
 {
     this.Manager = manager;
     this.fullCounter = fullCounter ?? new QueuedEventsCounter();
     this.categoryCounter = categoryCounter ?? new QueuedCategorizedEventsCounter();
     this.dropAllFsEventsHandler = new GenericSyncEventHandler<IFSEvent>(
         int.MaxValue,
         delegate(ISyncEvent e) {
         return true;
     });
 }
コード例 #8
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
        public void RefreshAsync(SyncEventHandler handler)
        {
            if (!inSync)
            {
                if (DbEngine.Database.Current.InTransaction())
                {
                    throw new Exception("You shoud rollback or commit transaction before sync");
                }

                inSync = true;
                _syncEvent.Reset();
                this.syncEvent = handler;
                context.CacheController.RefreshAsync();
            }
        }
コード例 #9
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
        public void RefreshAsync(SyncEventHandler handler)
        {
            if (!_inSync)
            {
                if (DbContext.Current.Database.InTransaction())
                {
                    throw new Exception("You shoud rollback or commit transaction before sync");
                }

                LogManager.Logger.SyncStarted();

                _inSync = true;
                _syncEvent.Reset();
                SyncEvent = handler;
                _context.CacheController.RefreshAsync();
            }
        }
コード例 #10
0
ファイル: Synchronizer.cs プロジェクト: vnmone/vvvv-sdk
        internal Synchronizer(Target <Ta> target, Source <Tb> source, Func <Tb, Ta> createTargetItem, Action <Ta> destroyTargetItem, Predicate <Tb> filterPredicate, SyncEventHandler <Ta, Tb> syncEventHandler = null)
        {
            FTarget            = target;
            FSource            = source;
            FCreateTargetItem  = createTargetItem;
            FDestroyTargetItem = destroyTargetItem;
            FFilterPredicate   = filterPredicate;
            FBToAMap           = new Dictionary <Tb, List <Ta> >();
            FStashedActions    = new List <Action>();
            if (syncEventHandler != null)
            {
                Synced += syncEventHandler;
            }

            Reload();

            FSource.SourceChanged += HandleSourceChanged;
        }
コード例 #11
0
        private void Form1_Load(object sender, EventArgs e)
        {
            SyncLogEvent += new SyncEventHandler(GPSForm_GpsLogEvent);
            String input;

            try
            {
                csFile fl = new csFile("command.txt");
                while ((input = fl.readLine()) != null)
                {
                    Commandlist.Items.Add(input);
                }
            }
            catch (Exception MyEx)
            {
                MessageBox.Show(MyEx.Message + ":" + "请确认数据文件在commands文件夹中且当前路径下有command文件!");
                Application.Exit();
            }
        }
コード例 #12
0
ファイル: MainFrm.cs プロジェクト: KeliBox/CK_Sync
        /// <summary>
        /// 异步CallBack
        /// </summary>
        /// <param name="ar"></param>
        private void RunCallBack(IAsyncResult ar)
        {
            SyncEventHandler d = null;

            try
            {
                System.Runtime.Remoting.Messaging.AsyncResult asres = (System.Runtime.Remoting.Messaging.AsyncResult)ar;
                d = ((SyncEventHandler)asres.AsyncDelegate);
                d.EndInvoke(ar);

                frmSyn.BeginInvoke((Action) delegate()
                {
                    frmSyn.Close();
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #13
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
        public void LoadSolution(bool clearCache, bool syncAfterLoad, SyncEventHandler handler)
        {
            _syncAfterLoad = syncAfterLoad;

            if (!clearCache && !DbEngine.Database.Current.IsSynced())
            {
                clearCache = true;
            }

            if (clearCache)
            {
                DbEngine.Database.CreateDatabase();
            }

            if (!clearCache)
            {
                DbEngine.Database.Current.OnStart();
                LoadAsync(handler);
            }
            else
            {
                RefreshAsync(handler);
            }
        }
コード例 #14
0
ファイル: Synchronizer.cs プロジェクト: vnmone/vvvv-sdk
        public static Synchronizer <Ta, Tb> SyncWith <Ta, Tb>(this ViewableCollection <Ta> collectionA, IEnumerable <Tb> collectionB, Func <Tb, Ta> createA, Action <Ta> destroyA = null, Predicate <Tb> filterPredicate = null, SyncEventHandler <Ta, Tb> syncEventHandler = null)
        {
            var target = new ViewableCollectionTarget <Ta>(collectionA);
            var source = CreateGenericSource(collectionB);

            destroyA        = destroyA ?? RemoveAndDispose;
            filterPredicate = filterPredicate ?? DefaultFilterPredicate;
            return(new Synchronizer <Ta, Tb>(target, source, createA, destroyA, filterPredicate, syncEventHandler));
        }
コード例 #15
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
 void LoadAsync(SyncEventHandler handler)
 {
     this.syncEvent = handler;
     context.LoadAsync();
 }
コード例 #16
0
 /// <summary>
 /// Removes the event handler.
 /// </summary>
 /// <param name='handler'>
 /// Handler to remove.
 /// </param>
 public void RemoveEventHandler(SyncEventHandler handler) {
     this.handler.Remove(handler);
 }
コード例 #17
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
        public void LoadSolution(bool clearCache, bool syncAfterLoad, SyncEventHandler handler)
        {
            _syncAfterLoad = syncAfterLoad;

            if (!clearCache && !DbEngine.Database.Current.IsSynced())
                clearCache = true;

            if (clearCache)
                DbEngine.Database.CreateDatabase();

            if (!clearCache)
            {
                DbEngine.Database.Current.OnStart();
                LoadAsync(handler);
            }
            else
            {
                RefreshAsync(handler);
            }
        }
コード例 #18
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
        public void RefreshAsync(SyncEventHandler handler)
        {
            if (!_inSync)
            {
                if (DbContext.Current.Database.InTransaction())
                    throw new Exception("You shoud rollback or commit transaction before sync");

                LogManager.Logger.SyncStarted();

                _inSync = true;
                _syncEvent.Reset();
                SyncEvent = handler;
                _context.CacheController.RefreshAsync();
            }
        }
コード例 #19
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
 void LoadAsync(SyncEventHandler handler)
 {
     SyncEvent = handler;
     _context.LoadAsync();
 }
コード例 #20
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
        public void LoadSolution(bool clearCache, bool syncAfterLoad, SyncEventHandler handler)
        {
            _syncAfterLoad = syncAfterLoad;

            if (!clearCache && !DbContext.Current.Database.IsSynced())
                clearCache = true;

            if (clearCache)
                DbContext.Current.CreateDatabase();
            else
                LogManager.Logger.ScheduledClear();

            if (!clearCache)
            {
                DbContext.Current.Database.OnStart();
                LoadAsync(handler);
            }
            else
            {
                RefreshAsync(handler);
            }
        }
コード例 #21
0
ファイル: SyncEventManager.cs プロジェクト: emrul/CmisSync
 /// <summary></summary>
 /// <param name="h"></param>
 public void RemoveEventHandler(SyncEventHandler h)
 {
     handler.Remove(h);
 }
コード例 #22
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
        void LoadAsync(SyncEventHandler handler)
        {
            this.syncEvent = handler;
            context.LoadAsync();

        }
コード例 #23
0
ファイル: Synchronizer.cs プロジェクト: vnmone/vvvv-sdk
        public static Synchronizer <object, object> SyncWith(this IList listA, IEnumerable collectionB, Func <object, object> createA, Action <object> destroyA = null, Predicate <object> filterPredicate = null, SyncEventHandler <object, object> syncEventHandler = null)
        {
            var target = new NonGenericListTarget(listA);
            var source = CreateNonGenericSource(collectionB);

            destroyA        = destroyA ?? RemoveAndDispose;
            filterPredicate = filterPredicate ?? DefaultFilterPredicate;
            return(new Synchronizer <object, object>(target, source, createA, destroyA, filterPredicate, syncEventHandler));
        }
コード例 #24
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
 void LoadAsync(SyncEventHandler handler)
 {
     SyncEvent = handler;
     _context.LoadAsync();
 }
コード例 #25
0
ファイル: DAL.cs プロジェクト: Fedorm/core-master
        public void RefreshAsync(SyncEventHandler handler)
        {
            if (!inSync)
            {
                if (DbEngine.Database.Current.InTransaction())
                    throw new Exception("You shoud rollback or commit transaction before sync");

                inSync = true;
                _syncEvent.Reset();
                this.syncEvent = handler;
                context.CacheController.RefreshAsync();
            }
        }