private void ProcessReserialize(ProgressReporter progress)
{
foreach (var configuration in ResolveConfigurations())
{
var logger = configuration.Resolve<ILogger>();
using (new LoggingContext(progress, configuration))
{
try
{
logger.Info("Control Panel Reserialize: Processing Unicorn configuration " + configuration.Name);
var predicate = configuration.Resolve<IPredicate>();
var serializationProvider = configuration.Resolve<ISerializationProvider>();
var roots = configuration.Resolve<PredicateRootPathResolver>().GetRootSourceItems();
int index = 1;
foreach (var root in roots)
{
var rootReference = serializationProvider.GetReference(root);
if (rootReference != null)
{
logger.Warn("[D] existing serialized items under {0}".FormatWith(rootReference.DisplayIdentifier));
rootReference.Delete();
}
logger.Info("[U] Serializing included items under root {0}".FormatWith(root.DisplayIdentifier));
Serialize(root, predicate, serializationProvider, logger);
progress.ReportProgress((int)((index / (double)roots.Length) * 100));
index++;
}
logger.Info("Control Panel Reserialize: Finished reserializing Unicorn configuration " + configuration.Name);
}
catch (Exception ex)
{
logger.Error(ex);
break;
}
}
}
}