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