private IEnumerable <string> GetRowValues(ExportAnnotationSettings settings, ElementHandler elementHandler, SkylineObject skylineObject) { foreach (var annotation in settings.AnnotationNames) { var annotationDef = elementHandler.FindAnnotation(annotation); if (annotationDef == null) { yield return(null); } else { yield return(FormatAnnotationValue(skylineObject, annotationDef)); } } foreach (var property in settings.PropertyNames) { var propertyInfo = elementHandler.FindProperty(property); if (propertyInfo == null) { yield return(null); } else { yield return(propertyInfo.ValueToText(CultureInfo, propertyInfo.GetValue(skylineObject))); } } }
public void WriteAnnotationsToFile(CancellationToken cancellationToken, ExportAnnotationSettings settings, string filename) { using (var writer = new StreamWriter(filename)) { SaveAnnotations(cancellationToken, settings, writer, TextUtil.SEPARATOR_CSV); } }
private void WriteAllAnnotations(CancellationToken cancellationToken, ExportAnnotationSettings settings, TextWriter textWriter, char separator) { WriteRow(textWriter, separator, GetColumnHeaders(settings)); foreach (var elementType in settings.ElementTypes) { var handler = _elementHandlers[elementType]; foreach (var skylineObject in handler.ListElements()) { var values = GetRowValues(settings, handler, skylineObject).ToArray(); if (settings.RemoveBlankRows && values.All(string.IsNullOrEmpty)) { continue; } WriteRow(textWriter, separator, new[] { skylineObject.GetLocator() }.Concat(values)); } } }
public void SaveAnnotations(CancellationToken cancellationToken, ExportAnnotationSettings settings, TextWriter writer, char separator) { WriteAllAnnotations(cancellationToken, settings, writer, separator); }
public IEnumerable <string> GetColumnHeaders(ExportAnnotationSettings settings) { return(new[] { COLUMN_LOCATOR } .Concat(settings.AnnotationNames.Select(name => ANNOTATION_PREFIX + name)) .Concat(settings.PropertyNames.Select(name => PROPERTY_PREFIX + name))); }