Exemple #1
0
        public bool GenerateArticles()
        {
            foreach (MagazineTypeCategorie categorie in _magazine.Categories)
            {
                foreach (ArticleType article in categorie.Articles)
                {
                    DirectoryInfo articleDirectory = _articlesDirectory.CreateSubdirectory(article.ID);
                    DirectoryInfo imageDirectory   = articleDirectory.CreateSubdirectory("images");

                    IEnumerable <XElement> images = article.XDocument.XPathSelectElements("//image");

                    foreach (XElement image in images)
                    {
                        XAttribute    xSrc            = image.Attribute("src");
                        DirectoryInfo sourceDirectory = GetArticleSourceDirectory(article);
                        string        src             = xSrc.Value;
                        string        sourceFileName  = Path.Combine(sourceDirectory.FullName, src);
                        string        destination     = String.Format("images/{0}", Path.GetFileName(sourceFileName));
                        File.Copy(sourceFileName, Path.Combine(imageDirectory.FullName, Path.GetFileName(destination)), true);
                        image.SetAttributeValue("src", destination);
                    }

                    string content        = TemplateManager.RenderTemplate(ARTICLE_FILENAME, article);
                    string outputFileName = Path.Combine(articleDirectory.FullName, ARTICLE_FILENAME);

                    File.WriteAllText(outputFileName, content);
                }
            }

            return(true);
        }
Exemple #2
0
        public bool GenerateEditorial()
        {
            StringBuilder    benevolesBuilder = new StringBuilder();
            HashSet <string> participants     = new HashSet <string>();
            List <string>    listeOrdonnee;
            string           content;

            foreach (var categorie in _magazine.Categories)
            {
                foreach (var article in categorie.Articles)
                {
                    foreach (var auteur in article.Auteurs)
                    {
                        if (auteur.Role == AuteurRoleEnum.Auteur ||
                            auteur.Role == AuteurRoleEnum.Traducteur ||
                            auteur.Role == AuteurRoleEnum.Correcteur)
                        {
                            participants.Add(auteur.NomComplet);
                        }
                    }
                }
            }

            listeOrdonnee = participants.OrderBy(x => x).ToList();
            benevolesBuilder.AppendLine(@"\begin{itemize}");
            for (int i = 0; i < listeOrdonnee.Count; ++i)
            {
                string auteur = listeOrdonnee[i];
                benevolesBuilder.Append(String.Format(@"\item {0}", auteur));

                if (i == listeOrdonnee.Count - 1)
                {
                    benevolesBuilder.Append(".");
                }
                else
                {
                    benevolesBuilder.Append(" ;");
                }

                benevolesBuilder.AppendLine();
            }
            benevolesBuilder.Append(@"\end{itemize}");

            if (_magazine.Editorial.Edito != null)
            {
                _magazine.Editorial.Edito = _magazine.Editorial.Edito.Replace("[LISTE_BENEVOLES]", benevolesBuilder.ToString());
                content = TemplateManager.RenderTemplate(EDITORIAL_FILENAME, _magazine);
            }
            else
            {
                content = String.Empty;
            }

            string outputFileName = Path.Combine(_magazineDirectory.FullName, EDITORIAL_FILENAME);

            File.WriteAllText(outputFileName, content);

            return(true);
        }
Exemple #3
0
        public bool GenerateCouverture()
        {
            string content        = TemplateManager.RenderTemplate(COUVERTURE_FILENAME, _magazine);
            string outputFileName = Path.Combine(_magazineDirectory.FullName, COUVERTURE_FILENAME);

            File.WriteAllText(outputFileName, content);
            return(true);
        }
Exemple #4
0
        public bool GenerateMagazine()
        {
            string content        = TemplateManager.RenderTemplate(MAGAZINE_FILENAME, _magazine);
            string outputFileName = Path.Combine(_rootDirectory.FullName, String.Format("mag{0}.tex", _magazine.Numero));

            File.WriteAllText(outputFileName, content);
            return(true);
        }