This commit is contained in:
Zeeshaun
2026-03-13 09:11:35 -05:00
parent f004c8205a
commit c2d6bda458
197 changed files with 14970 additions and 0 deletions
@@ -0,0 +1,62 @@
using LCU.API.Internal.DocumentLib.Containers;
using LCU.API.Internal.DocumentLib.Utilities;
using Microsoft.Extensions.Logging;
using MongoDB.Driver;
namespace OwnerNumberMigration.Logging;
public delegate IAttributeMigration AttributeMigrationLoggingDecoratorFactory
(
IAttributeMigration migration,
string attributeName,
string destinationAttributeName
);
public class AttributeMigrationLoggingDecorator : IAttributeMigration
{
private readonly IAttributeMigration _migration;
private readonly ILogger _logger;
private readonly IMongoCollection<DocumentInformation> _documents;
private readonly string _attributeName;
private readonly string _destinationAttributeName;
private readonly IDocumentFilterFactory _filterFactory;
public AttributeMigrationLoggingDecorator
(
IAttributeMigration migration,
ILogger logger,
IMongoCollectionFactory collectionFactory,
string attributeName,
string destinationAttributeName,
IDocumentFilterFactory filterFactory
)
{
_migration = migration;
_logger = logger;
_documents = collectionFactory.GetCollection<DocumentInformation>();
_attributeName = attributeName;
_destinationAttributeName = destinationAttributeName;
_filterFactory = filterFactory;
}
public async Task Migrate(CancellationToken cancellationToken)
{
var countToMigration = await _documents.CountDocumentsAsync
(
_filterFactory.AppliesForMigrationFilterFactory(_attributeName, _destinationAttributeName),
cancellationToken: cancellationToken
);
_logger.LogInformation
(
"starting to migration {attribute} with {count} documents",
_attributeName,
countToMigration
);
var start = DateTime.Now;
await _migration.Migrate(cancellationToken);
var duration = DateTime.Now - start;
_logger.LogInformation("finished migration for {attribute} in {elapsed}", _attributeName, duration);
}
}
@@ -0,0 +1,33 @@
using LCU.API.Internal.DocumentLib.Containers;
using Microsoft.Extensions.Logging;
namespace OwnerNumberMigration.Logging;
public delegate IObserver<DocumentInformation> AttributeMigrationLoggingObserverFactory(string attributeName);
public class AttributeMigrationLoggingObserver : IObserver<DocumentInformation>
{
private readonly ILogger _logger;
private readonly string _attributeName;
public AttributeMigrationLoggingObserver(ILogger logger, string attributeName)
{
_logger = logger;
_attributeName = attributeName;
}
public void OnCompleted()
{
_logger.LogInformation("completed one migration for {attribute}", _attributeName);
}
public void OnError(Exception error)
{
_logger.LogError("migration error {error} in migration for {attribute}", error, _attributeName);
}
public void OnNext(DocumentInformation value)
{
_logger.LogInformation("starting one migration for {attribute} on {documentId}", _attributeName, value.DocumentId);
}
}