/// <inheritdoc/> public void InconstructiblePicturesByCloning(PicturesOfConfiguration previousPictures, Configuration newConfiguration, InconsistentPicturesException exception) { }
/// <inheritdoc/> public void InconstructibleContextualPictureByCloning(ContextualPicture previousContextualPicture, PicturesOfConfiguration newConfigurationPictures, InconsistentPicturesException exception) { }
/// <summary> /// Traces that a given contextual picture couldn't be cloned and extended with the new object /// already drawn in pictures representing some configuration. /// </summary> /// <param name="previousContextualPicture">The contextual picture that was correct and failed to add the new object.</param> /// <param name="newConfigurationPictures">The pictures holding geometry data of the new object that was added.</param> /// <param name="exception">The inner inconsistency exception that caused the issue.</param> public void InconstructibleContextualPictureByCloning(ContextualPicture previousContextualPicture, PicturesOfConfiguration newConfigurationPictures, InconsistentPicturesException exception) { // Prepare the initial information string var infoString = $"Undrawable object into a contextual picture."; // If logging is allowed, log it with the reference to more detail in the file if (_settings.LogFailures) { Log.Warning("Object generation: {info} See {path} for more detail.", infoString, _settings.FailureFilePath); } // Prepare the formatter for the configuration var formatter = new OutputFormatter(newConfigurationPictures.Configuration.AllObjects); // Add the data about how the object can be drawn infoString += $"\n\nThe object is the last object of the following defining configuration:\n\n{formatter.FormatConfiguration(newConfigurationPictures.Configuration).Indent(2)}"; // Add the exception infoString += $"\n\nThe details of the exception: {exception.Format(formatter)}\n"; // Open the stream writer for the file using var streamWriter = new StreamWriter(_settings.FailureFilePath, append: true); // Write indented message to the file streamWriter.WriteLine($"- {infoString.Indent(3).TrimStart()}"); }