Exemple #1
0
        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);
        }
Exemple #2
0
        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!");
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
 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);
 }
Exemple #8
0
 protected virtual void Solido_Changed(object sender, EventArgs e)
 {
     ModelChange?.Invoke();
 }
 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);
 }
 public ModelChangedEventArgs(ModelChange change)
 {
     Change = change;
 }
 public static void OnModelChange(object sender, ModelChangeEventArgs e)
 {
     ModelChange?.Invoke(sender, e);
 }