BExIS.Dlm.Services.Data.DatasetManager.getDatasetWorkingCopy C# (CSharp) Method

getDatasetWorkingCopy() private method

private getDatasetWorkingCopy ( System.Int64 datasetId ) : DatasetVersion
datasetId System.Int64
return BExIS.Dlm.Entities.Data.DatasetVersion
        private DatasetVersion getDatasetWorkingCopy(Int64 datasetId)
        {
            DatasetVersion dsVersion = DatasetVersionRepo.Get(p =>
                                       p.Dataset.Id == datasetId
                                       && p.Dataset.Status == DatasetStatus.CheckedOut
                                       && p.Status == DatasetVersionStatus.CheckedOut
                                       )
                                     .FirstOrDefault();
            if (dsVersion != null)
            {
                dsVersion.Materialize();
                return (dsVersion);
            }

            // else there is a problem, try to find and report it
            Dataset dataset = DatasetRepo.Get(datasetId); // it would be nice to not fetch the dataset!
            if (dataset.Status == DatasetStatus.Deleted)
                throw new Exception(string.Format("Dataset {0} is deleted", datasetId));
            if (dataset.Status == DatasetStatus.CheckedIn)
                throw new Exception(string.Format("Dataset {0} is in checked in state", datasetId));
            return null;
        }