public void SetProperties(RealmPropertyJsonModel model)
 {
     model.ValidateValuePresent();
     this.Value       = bool.Parse(model.value);
     this.Locked      = model.locked ?? false;
     this.Probability = model.probability;
 }
 public void SetProperties(RealmPropertyJsonModel model)
 {
     if (model.value != null)
     {
         this.Value = int.Parse(model.value);
     }
     if (model.low != null)
     {
         this.RandomLowRange  = int.Parse(model.low);
         this.RandomHighRange = int.Parse(model.high);
         if (RandomLowRange > RandomHighRange)
         {
             throw new Exception("high must be > low");
         }
         if (!model.reroll.HasValue)
         {
             model.reroll = RealmPropertyRerollType.landblock;
         }
     }
     this.Locked          = model.locked ?? false;
     this.Probability     = model.probability;
     this.RandomType      = (byte)model.reroll;
     this.CompositionType = (byte)model.compose;
 }
        private static void SetProperty_Complex(Realm realm, RealmPropertyFloat property, RealmPropertyJsonModel pobj)
        {
            var result = realm.RealmPropertiesFloat.FirstOrDefault(x => x.Type == (ushort)property);

            if (result != null)
            {
                result.SetProperties(pobj);
            }
            else
            {
                var entity = new RealmPropertiesFloat {
                    RealmId = realm.Id, Type = (ushort)property
                };
                entity.SetProperties(pobj);
                realm.RealmPropertiesFloat.Add(entity);
            }
        }
        public static void SetPropertyByName_Complex(this Realm realm, string propertyName, RealmPropertyJsonModel pobj)
        {
            pobj.ValidateAll();

            if (Enum.TryParse <RealmPropertyBool>(propertyName, out var boolprop))
            {
                SetProperty_Complex(realm, boolprop, pobj);
            }
            else if (Enum.TryParse <RealmPropertyInt>(propertyName, out var intprop))
            {
                SetProperty_Complex(realm, intprop, pobj);
            }
            else if (Enum.TryParse <RealmPropertyString>(propertyName, out var stringprop))
            {
                SetProperty_Complex(realm, stringprop, pobj);
            }
            else if (Enum.TryParse <RealmPropertyFloat>(propertyName, out var floatprop))
            {
                SetProperty_Complex(realm, floatprop, pobj);
            }
            else if (Enum.TryParse <RealmPropertyInt64>(propertyName, out var longprop))
            {
                SetProperty_Complex(realm, longprop, pobj);
            }
            else
            {
                throw new Exception("Realm property not found: " + propertyName);
            }
        }