protected override async Task ProcessRecordAsync()
{
if (!File.Exists(Configuration))
{
throw new InvalidOperationException("Configuration file does not exist");
}
if (!File.Exists(Target))
{
throw new InvalidOperationException("Target does not exist");
}
ApplicationConfigurationSettings settings = Settings != null && Settings.Length > 0 ? ApplicationConfigurationSettings.FromFiles(Settings) :null;
ApplicationConfiguration configuration = await ApplicationConfiguration.FromFileAsync(Configuration, settings, CheckForMissingSettings);
if (!string.IsNullOrWhiteSpace(Target))
{
string extension = Path.GetExtension(Target).ToLower();
Type configurationApplierType;
if (!FileProcessors.TryGetValue(extension, out configurationApplierType))
{
throw new InvalidOperationException("File extension not recognized");
}
IConfigurationApplier configurationApplier = (IConfigurationApplier)Activator.CreateInstance(configurationApplierType);
configurationApplier.Apply(configuration, settings, Target);
}
}
}