Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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());
        }