예제 #1
0
        private Releaseability MakeSupplementalAssesment(ISupplementalExtractionResults supplementalExtractionResults)
        {
            var extractedObject = _repositoryLocator.GetArbitraryDatabaseObject(
                supplementalExtractionResults.ReferencedObjectRepositoryType,
                supplementalExtractionResults.ReferencedObjectType,
                supplementalExtractionResults.ReferencedObjectID) as INamed;

            if (extractedObject == null)
            {
                return(Releaseability.Undefined);
            }

            if (extractedObject is SupportingSQLTable)
            {
                if ((extractedObject as SupportingSQLTable).SQL != supplementalExtractionResults.SQLExecuted)
                {
                    return(Releaseability.ExtractionSQLDesynchronisation);
                }
            }

            var finalAssessment = GetSupplementalSpecificAssessment(supplementalExtractionResults);

            if (finalAssessment == Releaseability.Undefined)
            {
                return(extractedObject.Name != supplementalExtractionResults.ExtractedName
                    ? Releaseability.ExtractionSQLDesynchronisation
                    : Releaseability.Releaseable);
            }

            return(finalAssessment);
        }
        protected override void CheckDestination(ICheckNotifier notifier, ISupplementalExtractionResults globalResult)
        {
            var externalServerId = int.Parse(globalResult.DestinationDescription.Split('|')[0]);
            var externalServer   = RepositoryLocator.CatalogueRepository.GetObjectByID <ExternalDatabaseServer>(externalServerId);
            var dbName           = globalResult.DestinationDescription.Split('|')[1];
            var tblName          = globalResult.DestinationDescription.Split('|')[2];
            var server           = DataAccessPortal.GetInstance().ExpectServer(externalServer, DataAccessContext.DataExport, setInitialDatabase: false);
            var database         = server.ExpectDatabase(dbName);

            if (!database.Exists())
            {
                notifier.OnCheckPerformed(new CheckEventArgs("Database: " + database + " was not found", CheckResult.Fail));
                Releasability = Releaseability.ExtractFilesMissing;
            }
            var foundTable = database.ExpectTable(tblName);

            if (!foundTable.Exists())
            {
                notifier.OnCheckPerformed(new CheckEventArgs("Table: " + foundTable + " was not found", CheckResult.Fail));
                Releasability = Releaseability.ExtractFilesMissing;
            }
        }
 public override GlobalReleasePotential GetGlobalReleasabilityEvaluator(IRDMPPlatformRepositoryServiceLocator repositoryLocator, ISupplementalExtractionResults globalResult, IMapsDirectlyToDatabaseTable globalToCheck)
 {
     return(new MsSqlGlobalsReleasePotential(repositoryLocator, globalResult, globalToCheck));
 }
예제 #4
0
 protected abstract void CheckDestination(ICheckNotifier notifier, ISupplementalExtractionResults globalResult);
예제 #5
0
 protected GlobalReleasePotential(IRDMPPlatformRepositoryServiceLocator repositoryLocator, ISupplementalExtractionResults globalResult, IMapsDirectlyToDatabaseTable globalToCheck)
 {
     RepositoryLocator = repositoryLocator;
     GlobalResult      = globalResult;
     RelatedGlobal     = globalToCheck;
 }
 protected override void CheckDestination(ICheckNotifier notifier, ISupplementalExtractionResults globalResult)
 {
     CheckFileExists(notifier, globalResult.DestinationDescription);
 }
 public FlatFileGlobalsReleasePotential(IRDMPPlatformRepositoryServiceLocator repositoryLocator, ISupplementalExtractionResults globalResult, IMapsDirectlyToDatabaseTable globalToCheck)
     : base(repositoryLocator, globalResult, globalToCheck)
 {
 }
예제 #8
0
 /// <inheritdoc/>
 public abstract GlobalReleasePotential GetGlobalReleasabilityEvaluator(IRDMPPlatformRepositoryServiceLocator repositoryLocator, ISupplementalExtractionResults globalResult, IMapsDirectlyToDatabaseTable globalToCheck);
예제 #9
0
 protected override void CheckDestination(ICheckNotifier notifier, ISupplementalExtractionResults globalResult)
 {
     Releasability = Releaseability.NeverBeenSuccessfullyExecuted;
 }