private ChangePacket createChangePacket(IModelObject obj, ModelChange change) { // Clear buffers keys.Clear(); values.Clear(); var p = new ChangePacket(); p.Change = change; p.Guid = getObjectGuid(obj); p.TypeFullName = TW.Data.TypeSerializer.Serialize(obj.GetType()); foreach (var att in ReflectionHelper.GetAllAttributes(obj.GetType())) { var data = att.GetData(obj); if (data != null && Attribute.GetCustomAttribute(data.GetType(), typeof(NoSyncAttribute)) != null) { continue; // Do not sync this type of object!!!! } keys.Add(att.Name); values.Add(serializeObject(data)); } p.Keys = keys.ToArray(); p.Values = values.ToArray(); return(p); }
private void flagChanged(IModelObject obj, ModelChange change) { var ret = dirtyEntities.GetChange(obj); if (change == ModelChange.Removed && ret.Change == ModelChange.Added) { // Object was added, and removed again, so nothing happened! ret.Change = ModelChange.None; return; } if (change == ModelChange.Added || change == ModelChange.Removed) // added or removed are exclusive { ret.Change = change; return; } if (change == ModelChange.Modified) { if (ret.Change == ModelChange.None || ret.Change == ModelChange.Modified) { ret.Change = change; } return; } throw new InvalidOperationException("This is not possible!"); }
private void RaiseChanged(IDiagramModel model, ModelChange change, Object data, Object oldval, Object newval) { ModelChangedEventArgs e = new ModelChangedEventArgs(); e.Model = model; e.Change = change; e.Data = data; e.OldValue = oldval; e.NewValue = newval; model.RaiseChanged(e); }
internal void RaiseModelChanged(ModelChange change, Object data, Object oldval, Object newval) { ModelChangedEventArgs e = new ModelChangedEventArgs(); e.Model = (IDiagramModel)this; e.Change = change; e.Data = data; e.OldValue = oldval; e.NewValue = newval; OnChanged(e); }
public override void Apply(Ffb.Dto.Commands.ServerModelSync command) { var list = command?.modelChangeList?.modelChangeArray; if (list != null) { foreach (var obj in list) { ModelChange change = FFB.Instance.ModelChangeFactory.DeserializeJson(obj, obj?["modelChangeId"]?.ToString()); if (change != null) { FFB.Instance.Model.ApplyChange(change); } else { FFB.Instance.AddReport(RawString.Create($"<b>* * * Missing DTO for ModelChange {obj?["modelChangeId"]} * * *</b>")); } } } list = command?.reportList?.reports; if (list != null) { foreach (var obj in list) { Report report = FFB.Instance.ReportFactory.DeserializeJson(obj, obj?["reportId"]?.ToString()); if (report != null) { FFB.Instance.AddReport(report); } else { FFB.Instance.AddReport(RawString.Create($"<b>* * * Missing DTO for Report {obj?["reportId"]} * * *</b>")); } } } var sound = command?.sound.key; if (!string.IsNullOrEmpty(sound)) { FFB.Instance.PlaySound(sound); } }
public void Enqueue(ModelChange change) { _writer.WriteAsync(change); }
internal void RaiseModelChanged(ModelChange change, Object data, Object oldval, Object oldparam, Object newval, Object newparam) { ModelChangedEventArgs e = new ModelChangedEventArgs(); e.Model = (IDiagramModel)this; e.Change = change; e.Data = data; e.OldValue = oldval; e.OldParam = oldparam; e.NewValue = newval; e.NewParam = newparam; OnChanged(e); }
protected virtual void Solido_Changed(object sender, EventArgs e) { ModelChange?.Invoke(); }
public ModelChangedEventArgs(ModelChange change) { Change = change; }
public static void OnModelChange(object sender, ModelChangeEventArgs e) { ModelChange?.Invoke(sender, e); }