예제 #1
0
        public ActionResult Edit(Article article)
        {
            if (!ModelState.IsValid) return View(article);
            try
            {
                Article dbArticle;
                if (article.Id == 0)
                {
                    var currentUser = _repo.GetWhere<User>(u => u.UserName == User.Identity.Name).Single();
                    dbArticle = new Article {Author = currentUser};
                    _repo.Add(dbArticle);
                }
                else
                {
                    dbArticle = _repo.Get<Article>(article.Id);
                }
                dbArticle.Title = article.Title;
                dbArticle.Summary = article.Summary;
                dbArticle.Body = article.Body;
                dbArticle.PublishDate = article.PublishDate;
                dbArticle.EmailAddress = article.EmailAddress;
                _repo.SaveChanges();

                if (Request.Files != null && Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
                {
                    _attachmentLogic.SaveAttachment(article.Id, Request.Files[0]);
                }

                return RedirectToAction("Index");
            }
            catch
            {
                return View(article);
            }
        }
예제 #2
0
 public ArticleListModel(Article article)
 {
     Id = article.Id;
     Title = article.Title;
     AuthorUserName = article.Author.UserName;
     Summary = article.Summary;
 }
예제 #3
0
        public void GetGradeAverage_ShouldYieldArithmeticAverage_WhenThereIsOneNeutralGrade()
        {
            var article = new Article();
            AddGrades(article, 3);

            decimal grade = article.GetGradeAverage();

            Assert.That(grade, Is.EqualTo(3m));
        }
예제 #4
0
        public void GetGradeAverage_ShouldYieldArithmeticAverage_WhenThereAreManyGrades()
        {
            var article = new Article();
            AddGrades(article, 2, 5, 2, 3, 2, 1, 4, 5);

            decimal grade = article.GetGradeAverage();

            Assert.That(grade, Is.EqualTo(3m));
        }
예제 #5
0
        public void GetGradeAverage_ShouldYieldArithmeticAverageWithDecimals()
        {
            var article = new Article();
            AddGrades(article, 2);

            decimal grade = article.GetGradeAverage();

            Assert.That(grade, Is.EqualTo(2.5m));
        }
예제 #6
0
        public void GetGradeAverage_ShouldYieldArithmeticAverageRoundedDownToTwoDecimals_WhenThereAreManyGrades()
        {
            var article = new Article();
            AddGrades(article, 4, 1);

            decimal grade = article.GetGradeAverage();

            Assert.That(grade, Is.EqualTo(2.66m));
        }
        public void ArticleDetailsModel_ShouldShowGradeAverageWithTwoDecimals()
        {
            var article = new Article();
            article.Author = new User {UserName = "******"};
            article.Body = "";

            var model = new ArticleDetailsModel(article, "asmunde");

            Assert.That(model.GradeAverage, Is.EqualTo("3.00"));
        }
        public void ArticleDetailsModel_ShouldShowGradeGivenByCurrentUser()
        {
            var article = new Article();
            article.Author = new User {UserName = "******"};
            article.Grades.Add(new Grade {User = article.Author, GradeValue = 4});
            article.Body = "";

            var model = new ArticleDetailsModel(article, "asmunde");

            Assert.That(model.GradeValue, Is.EqualTo(4));
        }
 private Response UpdateArticle(string title, Article updatedArticle)
 {
     var existingArticle = LoadArticle(title);
     if (existingArticle == null)
         return 404;
     existingArticle.Title = updatedArticle.Title;
     existingArticle.Content = updatedArticle.Content;
     _session.Store(existingArticle);
     _session.SaveChanges();
     return Response.AsJson(existingArticle);
 }
 public ArticleDetailsModel(Article article, string currentUserName)
 {
     Title = article.Title;
     AuthorUserName = article.Author.UserName;
     GradeAverage = Format.Grade(article.GetGradeAverage());
     Summary = article.Summary;
     Body = article.Body;
     EmailAddress = article.EmailAddress;
     var userGrade = article.Grades.SingleOrDefault(g => g.User.UserName == currentUserName);
     GradeValue = (userGrade == null ? null : (int?)userGrade.GradeValue);
 }
 public Article Put(string title, Article article)
 {
     var existingArticle = LoadArticle(title);
     if (existingArticle != null)
     {
         existingArticle.Title = article.Title;
         existingArticle.Content = article.Content;
         _session.Store(existingArticle);
         _session.SaveChanges();
     }
     return existingArticle;
 }
 public ActionResult Update(string articletitle, Article article)
 {
     var existingArticle = LoadArticle(articletitle);
     if (existingArticle != null)
     {
         existingArticle.Title = article.Title;
         existingArticle.Content = article.Content;
         _session.Store(existingArticle);
         _session.SaveChanges();
         return Json(existingArticle);
     }
     throw new HttpException(404, "Resource not found");
 }
예제 #13
0
        public void GradeArticle_ShouldCreateANewGrade_WhenTheUserHasNotGradedTheArticleBefore()
        {
            var article = new Article {Id = 20};
            var currentUser = new User {UserName = "******"};
            var mockRepo = new Mock<IRepository>();
            mockRepo.Setup(r => r.Get<Article>(20)).Returns(article);
            mockRepo.Setup(r => r.GetWhere<User>(It.IsAny<Expression<Func<User, bool>>>())).Returns(new[]{currentUser}.AsQueryable());
            var logic = new GradeLogic(mockRepo.Object);

            logic.GradeArticle(20, "asmunde", 4);

            Assert.That(article.Grades.Count, Is.EqualTo(1));
            Assert.That(currentUser.Grades.Count, Is.EqualTo(1));
            var grade = article.Grades.Single();
            Assert.That(grade, Is.SameAs(currentUser.Grades.Single()));
            Assert.That(grade.GradeValue, Is.EqualTo(4));
            mockRepo.Verify(r => r.SaveChanges());
        }
 public Article Post(Article article)
 {
     _session.Store(article);
     _session.SaveChanges();
     return article;
 }
예제 #15
0
 public void GetGradeAverage_ShouldYield3_WhenThereAreNoGrades()
 {
     var article = new Article();
     decimal grade = article.GetGradeAverage();
     Assert.That(grade, Is.EqualTo(3m));
 }
예제 #16
0
 /// <summary>
 /// Create a new Article object.
 /// </summary>
 /// <param name="id">Initial value of the Id property.</param>
 /// <param name="authorId">Initial value of the AuthorId property.</param>
 /// <param name="title">Initial value of the Title property.</param>
 /// <param name="summary">Initial value of the Summary property.</param>
 /// <param name="body">Initial value of the Body property.</param>
 /// <param name="version">Initial value of the Version property.</param>
 public static Article CreateArticle(global::System.Int32 id, global::System.Guid authorId, global::System.String title, global::System.String summary, global::System.String body, global::System.Byte[] version)
 {
     Article article = new Article();
     article.Id = id;
     article.AuthorId = authorId;
     article.Title = title;
     article.Summary = summary;
     article.Body = body;
     article.Version = version;
     return article;
 }
예제 #17
0
 /// <summary>
 /// Deprecated Method for adding a new object to the Articles EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToArticles(Article article)
 {
     base.AddObject("Articles", article);
 }
 public ActionResult Create(Article article)
 {
     _session.Store(article);
     _session.SaveChanges();
     return Json(article);
 }
예제 #19
0
 private void AddGrades(Article article, params int[] gradeValues)
 {
     foreach (int gradeValue in gradeValues)
         article.Grades.Add(new Grade {GradeValue = gradeValue});
 }
예제 #20
0
 public ActionResult Create()
 {
     var article = new Article {Title = "New article", Summary = "", Body = "", EmailAddress = "", PublishDate = DateTime.Today};
     return View("Edit", article);
 }
 private Response CreateArticle(Article article)
 {
     _session.Store(article);
     _session.SaveChanges();
     return Response.AsJson(article);
 }