/// <summary> /// Copies from realm object. Returns new instance of T /// </summary> /// <returns>The from realm object.</returns> /// <param name="realmObject">Realm object.</param> /// <typeparam name="T">The 1st type parameter.</typeparam> public static T CopyFromRealmObject <T>(this RealmObject realmObject) { var standAlone = Activator.CreateInstance(typeof(T)); foreach (var property in standAlone.GetType().GetRuntimeProperties()) { var realmProperty = realmObject.GetType().GetRuntimeProperty(property.Name); if (!realmProperty.CanRead || (realmProperty.GetIndexParameters().Length > 0)) { continue; } object val; //DateTimeOffset should be DateTime if (realmProperty.PropertyType == typeof(DateTimeOffset)) { val = ((DateTimeOffset)realmProperty.GetValue(realmObject, null)).DateTime; } else { val = realmProperty.GetValue(realmObject, null); } property.SetValue(standAlone, val, null); } return((T)standAlone); }
private IRealmObjectHelper GetHelper(RealmObject obj) { #if ENABLE_INTERNAL_NON_PCL_TESTS return(obj.ObjectMetadata.Helper); #else return(GetHelper(obj.GetType())); #endif }
internal override void SetScheme(RealmObject parameter) { Contract.Requires(PrimaryKey != null); Contract.Requires(SchemeCtor != null); SchemeObj = parameter; Mapper = SchemeObj.GetMapper(); Mapper.Map(parameter, this, parameter.GetType(), typeof(TPoco)); CopySchemeList(); }
public static void Resolve(RealmObject element, List <RealmObject> toBeDeleted) { foreach (var property in element.GetType().GetProperties()) { if (IsEntity(property.PropertyType)) { toBeDeleted.Add((RealmObject)property.GetValue(element)); } if (IsSubEntity(property.PropertyType)) { foreach (var value in property.GetValue(element) as IList) { toBeDeleted.Add(value as RealmObject); } } } }
private IRealmObjectHelper GetHelper(RealmObject obj) { #if ENABLE_INTERNAL_NON_PCL_TESTS return obj.ObjectMetadata.Helper; #else return GetHelper(obj.GetType()); #endif }
public static TypeInfo GetInfo(RealmObject obj) { Argument.NotNull(obj, nameof(obj)); return(TypeCache.GetOrAdd(obj.GetType(), t => new RealmObjectTypeDelegator(t))); }