static void Main(string[] args) { var outFilePath = Path.Combine(AppContext.BaseDirectory, "molio.db.gz"); // It's unfortunate the database must be placed physically on disc and can't just reside in // memory. Using "Data Source=:memory:" as connection string makes no difference - there's // no way to extract the memory stream. var dbFilePath = Path.GetTempFileName(); try { using (var db = BlankDatabase(dbFilePath)) using (var doc = new MolioDoc(db)) WriteDoc(doc); GZipDoc(dbFilePath, outFilePath); } finally { File.Delete(dbFilePath); } Console.WriteLine("Done"); Console.ReadKey(); }
static void WriteDoc(MolioDoc ctx) { var bygningsdelsbeskrivelse = new Bygningsdelsbeskrivelse { Name = "Test", BygningsdelsbeskrivelseGuid = Guid.NewGuid(), BasisbeskrivelseVersionGuid = Guid.NewGuid() }; ctx.Bygningsdelsbeskrivelser.Add(bygningsdelsbeskrivelse); var omfang = new BygningsdelsbeskrivelseSection(1, "OMFANG"); var almeneSpecifikationer = new BygningsdelsbeskrivelseSection(2, "ALMENE SPECIFIKATIONER"); var generelt = new BygningsdelsbeskrivelseSection(almeneSpecifikationer, 1, "Generelt", "Noget tekst") { MolioSectionGuid = Guid.NewGuid() }; var thirdLevelSection = new BygningsdelsbeskrivelseSection(generelt, 5, "Tredje niveau", "Lorem ipsum"); var referenceliste = Attachment.Json("referenceliste.json", "{ \"test\": 1 }"); thirdLevelSection.Attach(referenceliste); using (var samplePdf = GetSamplePdf()) thirdLevelSection.Attach(Attachment.Pdf("basisbeskrivelse.pdf", samplePdf)); bygningsdelsbeskrivelse.Sections.AddRange(new[] { omfang, almeneSpecifikationer, generelt, thirdLevelSection }); ctx.SaveChanges(); }