public void Update(string key, IGuidObject value) { if (value == null) { throw new ArgumentNullException("value"); } if (GetObject(key, out DependentObject dobj) || !value.Equals(dobj.Value)) { dobj.UpdateValue(value); } }
public bool UpdateValue(IGuidObject value) { if (!value.Equals(Value)) { Value = value; foreach (var dependentObject in DependsByItems) { dependentObject.SetTagForUpdate(); } return(true); } else { return(false); } }
public void Rebuild() { if (TagForUpdate) { try { foreach (var dependentObject in DependsOnItems) { dependentObject.Rebuild(); } Value = BuildFromDependents(this, DependsOnItems.ToArray()); ClearTagForUpdate(); } catch (Exception ex) { Logger.Error(ex.GetDetail()); } } }