Andra inlämningsuppgiften för kursen Programmeringsteknik C#.
Inlämning av denna uppgift får ej ske via pull request. Lösningens innehåll skall packas i en .zip-fil och skickas in via PingPong här.
Företaget EBOARDSTORE behöver hjälp med mjukvara som kan konvertera butikens inventarie till olika format som skall skickas till olika parter.
Mjukvaran skall ta emot två parametrar:
- Källfil
- Målfil
Målfilen skall skapas som ett resultat av konvertering av indatat.
Följande indata- och utdataformat skall stödjas:
- Xml (.xml)
- JSON (.json)
- Binärdata (.bin)
- CSV (Excel) (.csv)
Läsning av andra filformat skall generera felmeddelanden. Skrivning till andra filformat skall generera felmeddelanden.
Referensdata för filfomatet hittas under /test/FileConverter.Tests/Template.{filändelse}.
Alla medföljande tester måste testa grönt. Vissa tester använder sig av djupjämförelser för att spåra att all data är identisk, var noga med att datat konverteras förlustfritt.
Projektet är redan uppsatt med NuGet-paketet CommandLineParser som gör att ni kan köra ert program med inparametrar.
För att färdigställa denna uppgift behöver man implementera metoden FileConverterProgram.Run.
Till er hjälp har ni den statiska klassen ConverterRegistrationScanner som har två egenskaper, SupportedWriters och SupportedReaders.
Dessa populeras vid körning av programmet och hittar automatiskt klasser som implementerar IFileWriter respektive IFileReader.
Man kan således hämta ut en IFileWriter från ConverterRegistrationScanner.SupportedWriters[".xml"].
Vidare behöver man bistå med funktionaliteten för alla IFileWriter och IFileReader som krävs för att lösa uppgiften.