public int CountEntities() { using (var uow = this.GetUnitOfWork()) { DatasetManager dm = new DatasetManager(); MetadataStructureManager metadataStructureManager = new MetadataStructureManager(); XmlDatasetHelper xmlDatasetHelper = new XmlDatasetHelper(); var entities = new List <EntityStoreItem>(); int count = 0; try { List <long> metadataStructureIds = metadataStructureManager.Repo.Query().Select(m => m.Id).ToList(); List <long> metadataSturctureIdsForDatasets = new List <long>(); metadataStructureIds.ForEach(m => xmlDatasetHelper.HasEntity(m, _entityName)); foreach (var msid in metadataStructureIds) { var datasetIds = new List <long>(); // get all datasets based on metadata data structure id datasetIds = dm.DatasetRepo.Query(d => d.MetadataStructure.Id.Equals(msid)).Select(d => d.Id).ToList(); count += datasetIds.Count; } return(count); } catch (Exception ex) { throw ex; } finally { dm.Dispose(); metadataStructureManager.Dispose(); } } }
public List <EntityStoreItem> GetEntities(int skip, int take) { bool withPaging = (take > 0); using (var uow = this.GetUnitOfWork()) { DatasetManager dm = new DatasetManager(); MetadataStructureManager metadataStructureManager = new MetadataStructureManager(); XmlDatasetHelper xmlDatasetHelper = new XmlDatasetHelper(); var entities = new List <EntityStoreItem>(); try { List <long> metadataStructureIds = metadataStructureManager.Repo.Query().Select(m => m.Id).ToList(); List <long> metadataSturctureIdsForDatasets = new List <long>(); metadataSturctureIdsForDatasets = metadataStructureIds.Where(m => xmlDatasetHelper.HasEntity(m, _entityName)).ToList(); foreach (var msid in metadataSturctureIdsForDatasets) { var datasetIds = new List <long>(); // get all datasets based on metadata data structure id if (withPaging) { datasetIds = dm.DatasetRepo .Query(d => d.MetadataStructure.Id.Equals(msid)) .Skip(skip) .Take(take) .Select(d => d.Id).ToList(); } else { datasetIds = dm.DatasetRepo.Query(d => d.MetadataStructure.Id.Equals(msid)).Select(d => d.Id).ToList(); } if (!datasetIds.Any()) { continue; } // create tuples based on dataset id list, and get latest version of each dataset List <DatasetVersion> datasetVersions = dm.GetDatasetLatestVersions(datasetIds, false); foreach (var dsv in datasetVersions) { var e = new EntityStoreItem() { Id = dsv.Dataset.Id, Title = dsv.Title, Version = dm.GetDatasetVersionCount(dsv.Dataset.Id) }; entities.Add(e); } } return(entities.ToList()); } catch (Exception ex) { throw ex; } finally { dm.Dispose(); metadataStructureManager.Dispose(); } } }