public void AddArticle_AddsArticle_WhenValidData()
        {
            using (var ctx = ContextUtil.GetContext())
            {
                var repo = new ArticlesRepository(ctx);

                var article = new ArticleDto
                {
                    Title = "The empire actually strikes back!?",
                    Body  = "[Insert something funny here]",
                    Tags  = new string[] { "star wars", "light side", "dark side", "dark side" }
                };

                var result = repo.AddArticle(article).GetAwaiter().GetResult();

                Assert.AreEqual("The empire actually strikes back!?", result.Title);
                Assert.AreEqual("[Insert something funny here]", result.Body);

                new List <string>()
                {
                    "Star Wars",
                    "Light Side",
                    "Dark Side"
                }.Select(x =>
                {
                    var tag = result.Tags.First(y => x == y);
                    Assert.AreEqual(x, tag);
                    return(tag);
                });

                // Give it two minutes
                Assert.IsTrue(result.Date > DateTime.UtcNow.AddMinutes(-1) && result.Date < DateTime.UtcNow.AddMinutes(1));
            }
        }
Пример #2
0
 public ArticleMutation(ArticlesRepository repo)
 {
     FieldAsync <ArticleType>(
         "createArticle",
         arguments: new QueryArguments(new QueryArgument <NonNullGraphType <ArticleTypeInput> >
     {
         Name = "article"
     }),
         resolve: async context =>
     {
         var article = context.GetArgument <Article>("article");
         return(await context.TryAsyncResolve(
                    async c => await repo.AddArticle(article)));
     }
         );
     FieldAsync <ArticleType>(
         "removeArticle",
         arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> >
     {
         Name = "id"
     }),
         resolve: async context =>
     {
         var id = context.GetArgument <string>("id");
         return(await context.TryAsyncResolve(
                    async _ => await repo.RemoveArticle(Guid.Parse((ReadOnlySpan <char>)id))
                    ));
     }
         );
 }
Пример #3
0
        public ActionResult Create(Article article, HttpPostedFileBase ArticleImage, string Tags)
        {
            if (ModelState.IsValid)
            {
                if (!HttpContext.User.Identity.IsAuthenticated)
                {
                    ViewBag.Message = "کاربر وارد کننده پیدا نشد.";
                    return(View(article));
                }


                #region Upload Image
                if (ArticleImage != null)
                {
                    // Saving Temp Image
                    var newFileName = Guid.NewGuid() + Path.GetExtension(ArticleImage.FileName);
                    ArticleImage.SaveAs(Server.MapPath("/Files/ArticleImages/Temp/" + newFileName));
                    // Resize Image
                    ImageResizer image = new ImageResizer(820, 340, true);
                    image.Resize(Server.MapPath("/Files/ArticleImages/Temp/" + newFileName),
                                 Server.MapPath("/Files/ArticleImages/Image/" + newFileName));

                    ImageResizer thumb = new ImageResizer(400, 300, true);
                    thumb.Resize(Server.MapPath("/Files/ArticleImages/Temp/" + newFileName),
                                 Server.MapPath("/Files/ArticleImages/Thumb/" + newFileName));

                    // Deleting Temp Image
                    System.IO.File.Delete(Server.MapPath("/Files/ArticleImages/Temp/" + newFileName));

                    article.Image = newFileName;
                }
                #endregion

                _repo.AddArticle(article);

                if (!string.IsNullOrEmpty(Tags))
                {
                    _repo.AddArticleTags(article.Id, Tags);
                }

                return(RedirectToAction("Index"));
            }
            ViewBag.Tags = Tags;
            ViewBag.ArticleCategoryId = new SelectList(_repo.GetArticleCategories(), "Id", "Title", article.ArticleCategoryId);
            return(View(article));
        }
Пример #4
0
        public IActionResult Add(EditorModel model)
        {
            model.Article = new Article()
            {
                Word = model.Word, Transcription = model.Transcription, Translations = new List <Translation>()
                {
                    new Translation()
                    {
                        Text = model.Translation
                    }
                }
            };
            var articleToAdd = model.Article;

            model.Article = _articlesRepository.AddArticle(model.Article);
            return(View(model));
        }