internal WorkspaceRole(IMetaPopulation metaPopulation, SyncResponseRole syncResponseRole) { var value = syncResponseRole.v; this.RoleType = (IRoleType)metaPopulation.Find(Guid.Parse(syncResponseRole.t)); var objectType = this.RoleType.ObjectType; if (objectType.IsUnit) { this.Value = UnitConvert.Parse(this.RoleType.ObjectType.Id, value); } else { if (this.RoleType.IsOne) { this.Value = value != null?long.Parse(value) : (long?)null; } else { this.Value = value != null ? value.Split(Encoding.Separator).Select(long.Parse).ToArray() : Array.Empty <long>(); } } }
public Fetch(IMetaPopulation metaPopulation, params Guid[] propertyTypeIds) : this(propertyTypeIds.Select(v => (IPropertyType)metaPopulation.Find(v)).ToArray()) { }