protected string CreateFileToOpen(ProjectInfo projectInfo, bool linkToUserCss) { LexEntryRepository lexEntryRepository = projectInfo.ServiceProvider.GetService(typeof(LexEntryRepository)) as LexEntryRepository; var pliftPath = Path.Combine(projectInfo.PathToExportDirectory, projectInfo.Name + ".plift"); var maker = new PLiftMaker(); maker.MakePLiftTempFile(pliftPath, lexEntryRepository, projectInfo.ServiceProvider.GetService(typeof(ViewTemplate)) as ViewTemplate, LiftWriter.ByteOrderStyle.NoBOM); var pathToOutput = Path.Combine(projectInfo.PathToExportDirectory, projectInfo.Name + ".html"); if (File.Exists(pathToOutput)) { File.Delete(pathToOutput); } var htmWriter = new FLExCompatibleXhtmlWriter(linkToUserCss, ((WeSay.Project.WeSayWordsProject)projectInfo.Project).DefaultViewTemplate); SetupLetterGroups(projectInfo, htmWriter); using (var reader = new StreamReader(pliftPath)) { using (var file = new StreamWriter(pathToOutput, false, new UTF8Encoding(false))) { htmWriter.Write(reader, file); } } return(pathToOutput); }
private string GetXhtmlContents(IList <LexEntry> entries) { if (entries != null) { entries.ForEach(e => _repo.SaveItem(e)); } var pliftbuilder = new StringBuilder(); using (var pexp = new PLiftExporter(pliftbuilder, false, _repo, _project.DefaultPrintingTemplate)) { ResultSet <LexEntry> recordTokens = _repo.GetAllEntriesSortedByHeadword(_project.DefaultPrintingTemplate.HeadwordWritingSystems[0]); foreach (RecordToken <LexEntry> token in recordTokens) { pexp.Add(token.RealObject); } pexp.End(); } var builder = new StringBuilder(); using (var w = new StringWriter(builder)) { var x = new FLExCompatibleXhtmlWriter(); // try { x.Write(new StringReader(pliftbuilder.ToString()), w); } // catch(Exception e) // { // Console.WriteLine(pliftbuilder.ToString()); // throw e; // } } return(builder.ToString()); }