public async Task <ActionResult> DeleteConfirmed(int id)
        {
            ImageDir imageDir = await db.ImageDirs.FindAsync(id);

            db.ImageDirs.Remove(imageDir);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Edit([Bind(Include = "ID,ClientNo,ContractNo,DocPath")] ImageDir imageDir)
        {
            if (ModelState.IsValid)
            {
                db.Entry(imageDir).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(imageDir));
        }
        public async Task <ActionResult> Create([Bind(Include = "ID,ClientNo,ContractNo,DocPath")] ImageDir imageDir)
        {
            if (ModelState.IsValid)
            {
                db.ImageDirs.Add(imageDir);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(imageDir));
        }
        // GET: ImageDirs/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ImageDir imageDir = await db.ImageDirs.FindAsync(id);

            if (imageDir == null)
            {
                return(HttpNotFound());
            }
            return(View(imageDir));
        }
Example #5
0
        protected void GenerateHtml(ResolvedStory story, string outPath, bool debug)
        {
            _logger.Debug("Generating HTML...");
            var index = FillTemplate(IndexTemplate ?? Template.Index, new Dictionary <string, string>
            {
                { "Language", _language },
                { "Title", story.Name },
                { "Description", Markdown.ToHtml(story.Description) },
                { "FirstScene", string.Format("{0}.html", story.FirstPage) }
            });

            File.WriteAllText(Path.Combine(outPath, "index.html"), index);

            foreach (var page in story.Pages)
            {
                File.WriteAllText(Path.Combine(outPath, "styles.css"), StylesTemplate ?? Template.Styles);

                var content = page.Content;
                foreach (var anchor in Utilities.GetInstance(Warnings, page.Name).ParseAnchors(page.Content))
                {
                    var newAnchor = string.Format("[{0}]({1}.html)", anchor.Text, anchor.Href.Target);
                    content = content.Replace(anchor.Original, newAnchor);
                }
                if (debug)
                {
                    content += string.Format("\n\n### State Debug\n\n{0}",
                                             string.Join("\n", page.ActiveToggles.Select(t => string.Format("- {0}", t)).ToArray()));
                }

                var scene = FillTemplate(SceneTemplate ?? Template.Scene, new Dictionary <string, string>
                {
                    { "Language", _language },
                    { "Title", story.Name },
                    { "Content", Markdown.ToHtml(content) }
                });

                File.WriteAllText(Path.Combine(outPath, string.Format("{0}.html", page.Name)), scene);
            }

            if (!string.IsNullOrWhiteSpace(ImageDir))
            {
                var dirname = ImageDir.Substring(ImageDir.LastIndexOf(Path.DirectorySeparatorChar) + 1);
                Directory.CreateDirectory(Path.Combine(outPath, dirname));
                CopyFilesRecursively(ImageDir, Path.Combine(outPath, dirname));
            }
        }
Example #6
0
        public override void Render(Model.Parser.ResolvedStory story, string outPath, bool debug = false)
        {
            _logger.Debug("Generating epub...");
            var temppath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());

            Directory.CreateDirectory(temppath);
            base.Render(story, temppath, debug);

            var chapters = new List <Chapter>
            {
                new Chapter(Path.Combine(temppath, "index.html"), "index.html", "Title Page")
            };

            chapters.AddRange(from file in Directory.GetFiles(temppath)
                              select Path.GetFileName(file)
                              into fname
                              where fname != "index.html" && fname != "styles.css"
                              select new Chapter(Path.Combine(temppath, fname), fname, fname.Replace(".html", string.Empty)));

            var epub = new Epub(Story.Name, _author, chapters);

            epub.BookId   = _bookId;
            epub.Language = _language;
            epub.AddResourceFile(new ResourceFile("styles.css", Path.Combine(temppath, "styles.css"), "text/css"));

            if (!string.IsNullOrWhiteSpace(ImageDir))
            {
                var dirname    = ImageDir.Substring(ImageDir.LastIndexOf(Path.DirectorySeparatorChar) + 1);
                var tempimgdir = Path.Combine(temppath, dirname);
                foreach (var img in Directory.GetFiles(tempimgdir))
                {
                    var fname = Path.GetFileName(img);
                    epub.AddResourceFile(new ResourceFile(fname,
                                                          Path.Combine(tempimgdir, fname), MimeHelper.GetMimeType(img)));
                }
            }

            var builder = new EPubBuilder(new FixedFileSystemManager(), Guid.NewGuid().ToString());
            var built   = builder.Build(epub);

            File.Move(built, outPath);
            Directory.Delete(temppath, true);
        }
Example #7
0
 private ImageDir GetDir(DirectoryInfo dirInfo)
 {
     if (dirInfo.Parent == null)
     {
         var exisitng = Roots.FirstOrDefault(x => x.DirectoryInfo.FullName == dirInfo.FullName);
         if (exisitng == null)
         {
             exisitng = new ImageDir(dirInfo);
             Roots.Add(exisitng);
         }
         return(exisitng);
     }
     else
     {
         var parent   = GetDir(dirInfo.Parent);
         var exisitng = parent.ImageDirs.FirstOrDefault(x => x.DirectoryInfo.FullName == dirInfo.FullName);
         if (exisitng == null)
         {
             exisitng = new ImageDir(dirInfo);
             parent.ImageDirs.Add(exisitng);
         }
         return(exisitng);
     }
 }