예제 #1
0
 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);
     }
 }
예제 #2
0
 public bool UpdateValue(IGuidObject value)
 {
     if (!value.Equals(Value))
     {
         Value = value;
         foreach (var dependentObject in DependsByItems)
         {
             dependentObject.SetTagForUpdate();
         }
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #3
0
        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());
                }
            }
        }