Skip to content

Instantly share code, notes, and snippets.

@janderit
Created August 2, 2012 13:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save janderit/3237207 to your computer and use it in GitHub Desktop.
Save janderit/3237207 to your computer and use it in GitHub Desktop.
Reporting/Data/Kontext
public interface IProvideData
{
bool Provides(string key);
string Key { get; }
string Description { get; }
string Target { get; }
DatenTabelle DesignData();
DatenTabelle DemoData();
DatenTabelle Transform(IEnumerable<DruckKontext> kontext);
}
public interface IProvideKontext
{
KontextTyp Typ { get; }
IEnumerable<DruckKontext> Access(IEnumerable<IProvideKontext> kontext);
}
/*CG*/ public partial class DruckKontext
/*CG*/ {
/*CG*/
/*CG*/ public virtual KontextTyp Typ { get; set; }
/*CG*/ public virtual Guid Id { get; set; }
/*CG*/ }
public class DatenTabelle
{
public List<List<string>> Werte {get;}
public string Herkunft { get; set; }
public string Ziel { get; set; }
public List<Datenspalte> Spalten {get;}
public IEnumerable<Serienbriefzeile> Zeilen {get;}
public DatenTabelle DesignData() {get;}
}
@janderit
Copy link
Author

janderit commented Aug 2, 2012

"Kontext" sind i.W. durch ein enum typisierte Guids, die von generischen Dataprovidern genutzt werden, um Daten aus Readmodels bereitzustellen.

So kann für einen Report ein kontextfreier Dataprovider z.B. Daten eines Mitarbeiters bereitstellen,
oder ein Generischer MitarbeiterDataprovider registriert sein, der, falls der Kontext die Id eines Mitarbeiters enthält, entsprechende Daten aus einem Readmodel bereitstellt, und ansonsten inaktiv ist

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment