public async Task <IActionResult> Edit(int id, [Bind("ID,Fullname")] PostWriter postWriter)
        {
            if (id != postWriter.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(postWriter);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PostWriterExists(postWriter.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(postWriter));
        }
Beispiel #2
0
 public PostApiController(
     PostWriter postWriter,
     PostStreamReader postStreamReader,
     IUserContext userContext) : base(userContext)
 {
     _postWriter       = postWriter;
     _postStreamReader = postStreamReader;
 }
Beispiel #3
0
 public CommentsApiController(
     PostWriter postWriter,
     PostStreamReader postStreamReader,
     IUserContext userContext,
     CommentReader commentReader) : base(userContext)
 {
     _postWriter       = postWriter;
     _postStreamReader = postStreamReader;
     _commentReader    = commentReader;
 }
        public async Task <IActionResult> Create([Bind("ID,Fullname")] PostWriter postWriter)
        {
            if (ModelState.IsValid)
            {
                _context.Add(postWriter);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(postWriter));
        }
Beispiel #5
0
        public void CreatePost_NoContent_ShouldFail()
        {
            // arrange
            var postWriter = new PostWriter(_mockPostRepo.Object, _mockCommentRepo.Object, null);

            // act
            Action action = () =>
                            postWriter.CreatePost(null);

            // assert
            action.ShouldThrow <Exception>();
        }
Beispiel #6
0
        public PostService(string jekyllRootFolder)
        {
            _jekyllRootFolder = jekyllRootFolder;

            // Leitor.
            var extractors = new IPostExtractor[]
            {
                new WordPressPostExtractor(),
                new DoPresskitVariant1PostExtractor(),
                new DoPresskitVariant2PostExtractor(),
                new GenericPostExtractor()
            };

            _reader = new PostReader(extractors);

            // Escritor.
            var resourceClient = new WebResourceClient();
            var fs             = new FileSystem();

            _writer = new PostWriter(jekyllRootFolder, resourceClient, fs);
        }
 public override void WritePost()
 {
     PostWriter.WriteContentPost(Title, Body);
 }
Beispiel #8
0
 public PostController(PostWriter postWriter, PostStreamReader postStreamReader)
 {
     _postWriter       = postWriter;
     _postStreamReader = postStreamReader;
 }
Beispiel #9
0
        public async Task Write_Post_Value()
        {
            var jekyllRootFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "jekyll");
            var web         = Substitute.For <IResourceClient>();
            var screenshot1 = new ImageResource(new byte[] { 1, 1, 1 }, ".png");

            web.DownloadImageAsync("http://test/screenshot1.png").Returns(screenshot1);

            var screenshot2 = new ImageResource(new byte[] { 2, 2, 2 }, ".png");

            web.DownloadImageAsync("http://test/screenshot2.png").Returns(screenshot2);

            var screenshot3 = new ImageResource(new byte[] { 2, 2 }, ".png");

            web.DownloadImageAsync("http://test/screenshot3.png").Returns(screenshot3);

            var logo = new ImageResource(new byte[] { 3, 3, 3 }, ".png");

            web.DownloadImageAsync("http://test/screenshot3.png").Returns(logo);

            var fs = Substitute.For <IFileSystem>();

            var target = new PostWriter(jekyllRootFolder, web, fs);
            var post   = new Post
            {
                Title       = "Test título",
                Date        = new DateTime(2018, 11, 28),
                Companies   = new string[] { "Test company" },
                Category    = PostCategory.Game,
                Tags        = new string[] { "test-company", "test-tag" },
                Content     = "test content1\ntest content2",
                Logo        = "http://test/screenshot3.png",
                Screenshots = new string [] { "http://test/screenshot1.png", "http://test/screenshot2.png", "http://test/screenshot3.png" }
            };

            var config = new PostConfig {
                Author = "Test author", IgnoreImagesLowerThanBytes = 3
            };
            await target.WriteAsync(post, config);

            var expectedPostFolder = Path.Combine(jekyllRootFolder, "_posts", "2018");

            fs.Received().CreateDirectory(expectedPostFolder);

            var expectedPostFilename    = Path.Combine(expectedPostFolder, "2018-11-28-test-titulo.md");
            var expectedPostFileContent = @"---
published: true
layout: post
title: 'Test título'
author: 'Test author'
companies: 'Test company'
categories: Game
tags: test-company test-tag
---
test content1

test content2";

            fs.Received().WriteFile(expectedPostFilename, expectedPostFileContent);

            var expectedImagesFolder = Path.Combine(jekyllRootFolder, "assets", "2018", "11", "28", "test-titulo");

            fs.Received().CreateDirectory(expectedImagesFolder);
            fs.Received().WriteFile(Path.Combine(expectedImagesFolder, "screenshot1.png"), screenshot1.Data);
            fs.Received().WriteFile(Path.Combine(expectedImagesFolder, "screenshot2.png"), screenshot2.Data);
            fs.Received().WriteFile(Path.Combine(expectedImagesFolder, "logo.png"), logo.Data);
        }
        internal static int CreatePost(this ISocialContent content, PostWriter postWriter = null)
        {
            var writer = postWriter ?? ServiceLocator.Current.GetInstance <PostWriter>();

            return(writer.CreatePost(null, null, content.ContentGuid.ToString()));
        }