Beispiel #1
0
        internal static void ChangeId(M modl, object newId)
        {
            Sync(modl);

            var id = Identity.FromId(newId, Definitions);

            if (modl.Modl.Id != id)
            {
                InstanceStore.ChangeId(modl, id);
            }
        }
Beispiel #2
0
        private static Identity GetId(M modl)
        {
            if (!Definitions.HasAutomaticId && Definitions.HasIdProperty)
            {
                var id = Definitions.IdProperty.GetValue(modl);
                if (IdConverter.HasValue(id))
                {
                    return(Identity.FromId(id, Definitions));
                }
            }

            return(Identity.GenerateNewId(Definitions));
        }
Beispiel #3
0
        internal static void Sync(M modl)
        {
            if (modl.Modl == null)
            {
                InstanceStore.AddNewInstance(GetId(modl), modl);
            }

            InstanceStore.Get(modl.Modl.Id).Sync(modl);

            if (HasIdChanged(modl))
            {
                InstanceStore.ChangeId(modl, Identity.FromId(Definitions.IdProperty.GetValue(modl), Definitions));
            }
        }
Beispiel #4
0
 public static M Get(object id) =>
 Handler <M> .Get(id is Identity?id as Identity : Identity.FromId(id, Definitions));