protected virtual void PerformRemoveAction(InverseAction action) { object obj = action.Obj; string propertyName = action.PropertyName; object value = action.Value; IPropertyMap propertyMap = this.Context.DomainMap.MustGetClassMap(obj.GetType()).MustGetPropertyMap(propertyName); IObjectManager om = this.Context.ObjectManager; IList list; IInterceptableList mList; bool stackMute = false; om.EnsurePropertyIsLoaded(obj, propertyMap); list = (IList)om.GetPropertyValue(obj, propertyName); mList = list as IInterceptableList; if (mList != null) { stackMute = mList.MuteNotify; mList.MuteNotify = true; } list.Remove(value); if (mList != null) { mList.MuteNotify = stackMute; } om.SetUpdatedStatus(obj, propertyName, true); this.Context.LogManager.Debug(this, "Performed cached inverse action", "Action type: " + action.ActionType.ToString() + ", Wrote to object of type: " + obj.GetType().ToString() + ", Property: " + propertyName + ", Value object type: " + value.GetType().ToString()); // do not localize }
protected virtual void RemoveActionFromMasters(InverseAction action) { if (inverseMasters.ContainsKey(action.Master)) { ArrayList masterActions = (ArrayList)inverseMasters[action.Master]; masterActions.Remove(action); if (masterActions.Count < 1) { inverseMasters.Remove(action.Master); } } }
protected virtual void AddAction(InverseActionType actionType, object obj, string propertyName, object value, object master) { if (value == null) { this.Context.LogManager.Debug(this, "Caching inverse action", "Action type: " + actionType.ToString() + ", Object of type: " + obj.GetType().ToString() + ", Property: " + propertyName + ", Value: null"); // do not localize } else { this.Context.LogManager.Debug(this, "Caching inverse action", "Action type: " + actionType.ToString() + ", Object of type: " + obj.GetType().ToString() + ", Property: " + propertyName + ", Value type: " + value.GetType().ToString()); // do not localize } InverseAction action = new InverseAction(); action.ActionType = actionType; action.Obj = obj; action.PropertyName = propertyName; action.Value = value; action.Master = master; Hashtable objActions; ArrayList propActions; ArrayList masterActions; if (!(inverseActions.ContainsKey(obj))) { inverseActions[obj] = new Hashtable(); } objActions = (Hashtable)inverseActions[obj]; if (!(objActions.ContainsKey(propertyName))) { objActions[propertyName] = new ArrayList(); } propActions = (ArrayList)objActions[propertyName]; propActions.Add(action); if (!(inverseMasters.ContainsKey(master))) { inverseMasters[master] = new ArrayList(); } masterActions = (ArrayList)inverseMasters[master]; masterActions.Add(action); }
protected virtual void PerformSetAction(InverseAction action) { object obj = action.Obj; string propertyName = action.PropertyName; object value = action.Value; IPropertyMap propertyMap = this.Context.DomainMap.MustGetClassMap(obj.GetType()).MustGetPropertyMap(propertyName); IObjectManager om = this.Context.ObjectManager; om.EnsurePropertyIsLoaded(obj, propertyMap); om.SetPropertyValue(obj, propertyName, value); om.SetNullValueStatus(obj, propertyName, false); om.SetUpdatedStatus(obj, propertyName, true); if (value == null) { this.Context.LogManager.Debug(this, "Performed cached inverse action", "Action type: " + action.ActionType.ToString() + ", Wrote to object of type: " + obj.GetType().ToString() + ", Property: " + propertyName + ", Value: null"); // do not localize } else { this.Context.LogManager.Debug(this, "Performed cached inverse action", "Action type: " + action.ActionType.ToString() + ", Wrote to object of type: " + obj.GetType().ToString() + ", Property: " + propertyName + ", Value object type: " + value.GetType().ToString()); // do not localize } }
protected virtual void PerformSetAction(InverseAction action) { object obj = action.Obj; string propertyName = action.PropertyName; object value = action.Value; IPropertyMap propertyMap = this.Context.DomainMap.MustGetClassMap(obj.GetType()).MustGetPropertyMap(propertyName); IObjectManager om = this.Context.ObjectManager; om.EnsurePropertyIsLoaded(obj, propertyMap); om.SetPropertyValue(obj, propertyName, value); om.SetNullValueStatus(obj, propertyName, false); om.SetUpdatedStatus(obj, propertyName, true); if (value == null) { LogMessage message = new LogMessage("Performed cached inverse action"); LogMessage verbose = new LogMessage("Action type: {0}, Wrote to object of type: {1}, Property: {2}, Value: null" , action.ActionType , obj.GetType(), propertyName); this.Context.LogManager.Debug(this, message,verbose ); // do not localize } else { LogMessage message = new LogMessage("Performed cached inverse action"); LogMessage verbose = new LogMessage("Action type: {0}, Wrote to object of type: {1}, Property: {2}, Value object type: {3}" , action.ActionType, obj.GetType(), propertyName , value.GetType()); this.Context.LogManager.Debug(this,message ,verbose); // do not localize } }
protected virtual void RemoveActionFromMasters(InverseAction action) { if (inverseMasters.ContainsKey(action.Master)) { ArrayList masterActions = (ArrayList) inverseMasters[action.Master]; masterActions.Remove(action); if (masterActions.Count < 1) inverseMasters.Remove(action.Master); } }
protected virtual void PerformRemoveAction(InverseAction action) { object obj = action.Obj; string propertyName = action.PropertyName; object value = action.Value; IPropertyMap propertyMap = this.Context.DomainMap.MustGetClassMap(obj.GetType()).MustGetPropertyMap(propertyName); IObjectManager om = this.Context.ObjectManager; IList list; IInterceptableList mList; bool stackMute = false; om.EnsurePropertyIsLoaded(obj, propertyMap); list = (IList) om.GetPropertyValue(obj, propertyName); mList = list as IInterceptableList; if (mList != null) { stackMute = mList.MuteNotify; mList.MuteNotify = true; } list.Remove(value); if (mList != null) { mList.MuteNotify = stackMute; } om.SetUpdatedStatus(obj, propertyName, true); LogMessage message = new LogMessage("Performed cached inverse action"); LogMessage verbose = new LogMessage("Action type: {0}, Wrote to object of type: {1}, Property: {2}, Value object type: {3}" , action.ActionType,obj.GetType(),propertyName ,value.GetType()); this.Context.LogManager.Debug(this,message , verbose); // do not localize }
protected virtual void AddAction(InverseActionType actionType, object obj, string propertyName, object value, object master) { if (value == null) { LogMessage message = new LogMessage("Caching inverse action"); LogMessage verbose = new LogMessage("Action type: {0}, Object of type: {1}, Property: {2}, Value: null" , actionType, obj.GetType(),propertyName ); this.Context.LogManager.Debug(this, message,verbose ); // do not localize } else { LogMessage message = new LogMessage("Caching inverse action"); LogMessage verbose = new LogMessage("Action type: {0}, Object of type: {1}, Property: {2}, Value type: {3}" , actionType, obj.GetType(),propertyName,value.GetType()) ; this.Context.LogManager.Debug(this, message,verbose ); // do not localize } InverseAction action = new InverseAction() ; action.ActionType = actionType ; action.Obj = obj; action.PropertyName = propertyName; action.Value = value; action.Master = master; Hashtable objActions; ArrayList propActions; ArrayList masterActions; if (!(inverseActions.ContainsKey(obj))) { inverseActions[obj] = new Hashtable(); } objActions = (Hashtable) inverseActions[obj] ; if (!(objActions.ContainsKey(propertyName))) { objActions[propertyName] = new ArrayList(); } propActions = (ArrayList) objActions[propertyName] ; propActions.Add(action); if (!(inverseMasters.ContainsKey(master))) { inverseMasters[master] = new ArrayList(); } masterActions = (ArrayList) inverseMasters[master] ; masterActions.Add(action); }
protected virtual void PerformSetAction(InverseAction action) { object obj = action.Obj; string propertyName = action.PropertyName; object value = action.Value; IPropertyMap propertyMap = this.Context.DomainMap.MustGetClassMap(obj.GetType()).MustGetPropertyMap(propertyName); IObjectManager om = this.Context.ObjectManager; om.EnsurePropertyIsLoaded(obj, propertyMap); om.SetPropertyValue(obj, propertyName, value); om.SetNullValueStatus(obj, propertyName, false); om.SetUpdatedStatus(obj, propertyName, true); if (value == null) this.Context.LogManager.Debug(this, "Performed cached inverse action", "Action type: " + action.ActionType.ToString() + ", Wrote to object of type: " + obj.GetType().ToString() + ", Property: " + propertyName + ", Value: null"); // do not localize else this.Context.LogManager.Debug(this, "Performed cached inverse action", "Action type: " + action.ActionType.ToString() + ", Wrote to object of type: " + obj.GetType().ToString() + ", Property: " + propertyName + ", Value object type: " + value.GetType().ToString() ); // do not localize }
protected virtual void PerformAddAction(InverseAction action) { object obj = action.Obj; string propertyName = action.PropertyName; object value = action.Value; IPropertyMap propertyMap = this.Context.DomainMap.MustGetClassMap(obj.GetType()).MustGetPropertyMap(propertyName); if ( propertyMap == null) { return ;} IObjectManager om = this.Context.ObjectManager; IList list; IInterceptableList mList; bool stackMute = false; om.EnsurePropertyIsLoaded(obj, propertyMap); list = (IList) om.GetPropertyValue(obj, propertyName); mList = list as IInterceptableList; if (mList != null) { stackMute = mList.MuteNotify; mList.MuteNotify = true; } list.Add(value); if (mList != null) { mList.MuteNotify = stackMute; } om.SetUpdatedStatus(obj, propertyName, true); this.Context.LogManager.Debug(this, "Performed cached inverse action", "Action type: " + action.ActionType.ToString() + ", Wrote to object of type: " + obj.GetType().ToString() + ", Property: " + propertyName + ", Value object type: " + value.GetType().ToString() ); // do not localize }
protected virtual void AddAction(InverseActionType actionType, object obj, string propertyName, object value, object master) { if (value == null) this.Context.LogManager.Debug(this, "Caching inverse action", "Action type: " + actionType.ToString() + ", Object of type: " + obj.GetType().ToString() + ", Property: " + propertyName + ", Value: null"); // do not localize else this.Context.LogManager.Debug(this, "Caching inverse action", "Action type: " + actionType.ToString() + ", Object of type: " + obj.GetType().ToString() + ", Property: " + propertyName + ", Value type: " + value.GetType().ToString() ); // do not localize InverseAction action = new InverseAction() ; action.ActionType = actionType ; action.Obj = obj; action.PropertyName = propertyName; action.Value = value; action.Master = master; Hashtable objActions; ArrayList propActions; ArrayList masterActions; if (!(inverseActions.ContainsKey(obj))) { inverseActions[obj] = new Hashtable(); } objActions = (Hashtable) inverseActions[obj] ; if (!(objActions.ContainsKey(propertyName))) { objActions[propertyName] = new ArrayList(); } propActions = (ArrayList) objActions[propertyName] ; propActions.Add(action); if (!(inverseMasters.ContainsKey(master))) { inverseMasters[master] = new ArrayList(); } masterActions = (ArrayList) inverseMasters[master] ; masterActions.Add(action); }