Пример #1
0
        /// <summary>
        /// 引發ItemUpdated事件。
        /// </summary>
        /// <param name="itemUpdatedEventArgs">包含事件資料的ItemUpdatedEventArgs</param>
        protected virtual void OnItemUpdated(ItemUpdatedEventArgs itemUpdatedEventArgs)
        {
            if (ItemUpdated != null)
            {
                ItemUpdated(this, itemUpdatedEventArgs);
            }

            //BigEvent be = new BigEvent("OnItemUpdated", ItemUpdated, this, itemUpdatedEventArgs);
            //be.UIRaise();
        }
Пример #2
0
        private void Manager_ConfigurationUpdated(object sender, ItemUpdatedEventArgs e)
        {
            string name = Namespace;

            if (e.PrimaryKeys.Contains(name))
            {
                if (Sync) //同步時的處理方式。
                {
                    if (Manager.Cache[name] != null)
                    {
                        ConfigurationRecord newRecord = Manager.Cache[name];

                        if (newRecord.BaseData == null && newRecord.PreviousData == null)
                        {
                            Record = newRecord;
                        }
                        else
                        {
                            if (Record.BaseData != null)
                            {
                                //神秘的大絕招... = =''
                                foreach (string each in new List <string>(Record.BaseData.Keys)) //將自身的資料同步到別人的資料中…
                                {
                                    newRecord.BaseData[each] = Record.BaseData[each];
                                }
                            }
                            newRecord.PreviousData = Record.PreviousData;

                            Record = newRecord; //一定是更新模式。
                        }
                    }
                    else //代表別人把這個組態從資料庫刪掉了。
                    {
                        Record.EditAction = 1;//新增模式。
                    }
                }
                else //非同步時的處理方式。
                {
                    //處理當原本是新增的組態,因為另一個相同 Namespace 的組態先儲存了,這裡就改成更新。
                    if (Manager.Cache[name] != null)
                    {
                        if (Record.EditAction == 1)
                        {
                            Record.EditAction = 2;
                        }
                    }
                }
            }

            Manager.ConfigurationUpdated -= new EventHandler <ItemUpdatedEventArgs>(Manager_ConfigurationUpdated);
        }