Beispiel #1
0
 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)));
         }
     }
 }
Beispiel #2
0
 public void WriteAnnotationsToFile(CancellationToken cancellationToken, ExportAnnotationSettings settings, string filename)
 {
     using (var writer = new StreamWriter(filename))
     {
         SaveAnnotations(cancellationToken, settings, writer, TextUtil.SEPARATOR_CSV);
     }
 }
Beispiel #3
0
 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));
         }
     }
 }
Beispiel #4
0
 public void SaveAnnotations(CancellationToken cancellationToken, ExportAnnotationSettings settings, TextWriter writer, char separator)
 {
     WriteAllAnnotations(cancellationToken, settings, writer, separator);
 }
Beispiel #5
0
 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)));
 }