protected override int ExecuteWorkImplementation() { var importHistory = m_importedRecordMetadataRepository.Load <ImportHistory>(m_importHistoryId); ImportedProjectMetadata importedProjectMetadata = null; Snapshot latestSnapshot = null; if (m_data.ImportedProjectMetadataId.HasValue) { importedProjectMetadata = m_importedRecordMetadataRepository.Load <ImportedProjectMetadata>(m_data.ImportedProjectMetadataId.Value); } if (!m_data.IsFailed) { latestSnapshot = m_projectRepository.GetLatestSnapshot(m_data.ProjectId); } var importMetadata = new ImportedRecordMetadata { LastUpdate = importHistory, LastUpdateMessage = m_data.FaultedMessage, Snapshot = latestSnapshot, ImportedProjectMetadata = importedProjectMetadata }; return((int)m_importedRecordMetadataRepository.Create(importMetadata)); }
public ImportHistory GetLastImportHistoryForImportedProjectMetadata(int importedProjectMetadataId) { ImportedRecordMetadata importedRecordMetadata = null; return(GetSession().QueryOver <ImportHistory>() .JoinAlias(x => x.ImportedRecordMetadata, () => importedRecordMetadata) .Where(() => importedRecordMetadata.ImportedProjectMetadata.Id == importedProjectMetadataId) .OrderBy(x => x.Date).Desc .Take(1) .SingleOrDefault()); }
public virtual LastImportStatisticsResult GetLastUpdateExternalRepositoryStatistics(int repositoryId) { ExternalRepository externalRepository = null; ImportHistory importHistory1 = null; ImportHistory importHistory2 = null; ImportedRecordMetadata importedRecordMetadata = null; Snapshot snapshot = null; LastImportStatisticsResult lastImportStatisticsResult = null; var subQuery = QueryOver.Of(() => importHistory2).Where(x => x.ExternalRepository.Id == repositoryId) .OrderBy(x => x.Date).Desc .Select(x => x.Id) .Take(1); var result = GetSession().QueryOver(() => importHistory1) .JoinAlias(() => importHistory1.ExternalRepository, () => externalRepository) .JoinAlias(() => importHistory1.ImportedRecordMetadata, () => importedRecordMetadata, JoinType.LeftOuterJoin) .JoinAlias(() => importedRecordMetadata.Snapshot, () => snapshot, JoinType.LeftOuterJoin) .WithSubquery .WhereProperty(() => importHistory1.Id).Eq(subQuery) .SelectList(list => list .SelectCount(() => importedRecordMetadata.Id) .WithAlias(() => lastImportStatisticsResult.TotalItems) .Select( Projections.Sum(Projections.Conditional( Restrictions.Eq( Projections.Property(() => snapshot.VersionNumber), 1), Projections.Constant(1, NHibernateUtil.Int32), Projections.Constant(0, NHibernateUtil.Int32)))) .WithAlias(() => lastImportStatisticsResult.NewItems) .Select( Projections.Sum(Projections.Conditional( Restrictions.Gt( Projections.Property(() => snapshot.VersionNumber), 1), Projections.Constant(1, NHibernateUtil.Int32), Projections.Constant(0, NHibernateUtil.Int32))) .WithAlias(() => lastImportStatisticsResult.UpdatedItems))) .TransformUsing(Transformers.AliasToBean <LastImportStatisticsResult>()) .SingleOrDefault <LastImportStatisticsResult>(); return(result); }