internal WSTableSource Clone(MetaFunctions _Func, byte?_UserRole = null) { WSTableSource src = new WSTableSource(ReturnType, SecurityZone, NAME, _Func, _UserRole == null ? UserRole : (byte)_UserRole, false, AccessLevel, AVAILABLE_FORMATS, ALIACES); src.PrintStatus = PrintStatus; src.ShowMessageInaccessible = ShowMessageInaccessible; src.AllowOwnerAccess = AllowOwnerAccess; src.BaseFilter = BaseFilter == null ? null : BaseFilter.JString.ToJson(); src.DeletableFilter = DeletableFilter == null ? null : DeletableFilter.JString.ToJson(); src.EditableFilter = EditableFilter == null ? null : EditableFilter.JString.ToJson(); src.CreatableFilter = CreatableFilter == null ? null : CreatableFilter.JString.ToJson(); src.ReadableFilter = ReadableFilter == null ? null : ReadableFilter.JString.ToJson(); src.DefaultSchemaDeepness = DefaultSchemaDeepness; src._IsReadableBySchema = _IsReadableBySchema; src._IsCreatableBySchema = _IsCreatableBySchema; src._IsEditableBySchema = _IsEditableBySchema; src._IsDeletableBySchema = _IsDeletableBySchema; src.Params = Params.Select(x => x is WSTableParam ? ((WSTableParam)x).Clone() : x.Clone()); //PrimParams = PrimParams == null ? null : PrimParams.Select(c => c.Clone()); src.DeleteFlag = DeleteFlag == null ? null : DeleteFlag.Clone(); //Json = Json; //CoreSchema = CoreSchema; src./*_*/ SecurityZone = SecurityZone; src.BaseSchema = BaseSchema == null?null:(WSEntitySchema)BaseSchema.Clone(src); //src._IsReady = null; return(src); }