public ArrayInstance ListEntities(object filterCriteria)
        {
            var criteria = new EntityFilterCriteriaInstance(Engine.Object.InstancePrototype);

            if (filterCriteria is FolderInstance)
            {
                criteria.EntityFilterCriteria.Path = (filterCriteria as FolderInstance).FullPath;
            }
            else if (filterCriteria is string || filterCriteria is StringInstance || filterCriteria is ConcatenatedString)
            {
                criteria.EntityFilterCriteria.Path = filterCriteria.ToString();
            }
            else if (filterCriteria != null && filterCriteria != Null.Value && filterCriteria != Undefined.Value)
            {
                criteria = JurassicHelper.Coerce <EntityFilterCriteriaInstance>(Engine, filterCriteria);
            }

            var result = Engine.Array.Construct();

            foreach (var entity in m_repository.ListEntities(criteria.EntityFilterCriteria))
            {
                ArrayInstance.Push(result, new EntityInstance(Engine, entity));
            }

            return(result);
        }
        public object Single(object filterCriteria)
        {
            var criteria = new EntityFilterCriteriaInstance(Engine.Object.InstancePrototype);

            if (filterCriteria is FolderInstance)
            {
                criteria.EntityFilterCriteria.Path = (filterCriteria as FolderInstance).FullPath;
            }
            else if (filterCriteria is string || filterCriteria is StringInstance || filterCriteria is ConcatenatedString)
            {
                criteria.EntityFilterCriteria.Path = filterCriteria.ToString();
            }
            else if (filterCriteria != null && filterCriteria != Null.Value && filterCriteria != Undefined.Value)
            {
                criteria = JurassicHelper.Coerce <EntityFilterCriteriaInstance>(Engine, filterCriteria);
            }

            var result = m_repository.Single(criteria.EntityFilterCriteria);

            if (result == null)
            {
                return(Null.Value);
            }

            return(new EntityInstance(Engine, result));
        }