async public Task Delete(Guid id)
        {
            MainArticleModel mainArticleModel = db.MainArticles.Find(id);

            db.MainArticles.Remove(mainArticleModel);
            await dbSave.Save(db);
        }
        public async Task <ActionResult> Edit([Bind(Include = "ForumID,Subject,ContentText")] MainArticleModel mainArticleModel)
        {
            if (ModelState.IsValid)
            {
                await repository.Update(mainArticleModel);

                return(RedirectToAction("Index"));
            }
            ViewBag.ForumID = new SelectList(db.Categories, "ID", "ContentText", mainArticleModel.ForumID);
            return(View(mainArticleModel));
        }
        async public Task Insert(object obj)
        {
            MainArticleModel mainArticleModel = obj as MainArticleModel;

            mainArticleModel.ID          = Guid.NewGuid();
            mainArticleModel.CreateUser  = HttpContext.Current.User.Identity.Name;
            mainArticleModel.PublichDate = DateTime.Now;
            mainArticleModel.ReplyCount  = 0;
            db.MainArticles.Add(mainArticleModel);
            await dbSave.Save(db);
        }
예제 #4
0
        public async Task <ActionResult> Edit([Bind(Include = "ID,ForumID,Subject,ReplyCount,ContentText,PublichDate,CreateUser")] MainArticleModel mainArticleModel)
        {
            if (ModelState.IsValid)
            {
                db.Entry(mainArticleModel).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.ForumID = new SelectList(db.Categories, "ID", "ContentText", mainArticleModel.ForumID);
            return(View(mainArticleModel));
        }
예제 #5
0
        public async Task Insert(object obj)
        {
            ArticleAndReplyModel replyModel = obj as ArticleAndReplyModel;

            replyModel.reply.ID          = Guid.NewGuid();
            replyModel.reply.CreateUser  = HttpContext.Current.User.Identity.Name;
            replyModel.reply.PublichDate = DateTime.Now;
            MainArticleModel article = await db.MainArticles.FindAsync(replyModel.reply.ArticleID);

            article.ReplyCount = article.replyArticles.ToList().Count() + 1;
            db.Replies.Add(replyModel.reply);
            await dbSave.Save(db);
        }
        // GET: Manager/MainArticleModels/Delete/5
        public ActionResult Delete(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MainArticleModel mainArticleModel = db.MainArticles.Find(id);

            if (mainArticleModel == null)
            {
                return(HttpNotFound());
            }
            return(View(mainArticleModel));
        }
        // GET: Manager/MainArticleModels1/Edit/5
        public async Task <ActionResult> Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MainArticleModel mainArticleModel = await db.MainArticles.FindAsync(id);

            if (mainArticleModel == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ForumID = new SelectList(db.Categories, "ID", "ContentText", mainArticleModel.ForumID);
            return(View(mainArticleModel));
        }
예제 #8
0
        public ActionResult Details(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MainArticleModel article = db.MainArticles.Find(id);

            if (article == null)
            {
                return(HttpNotFound());
            }
            ArticleAndReplyModel articleModel = new ArticleAndReplyModel();

            articleModel.article = article;
            articleModel.reply   = new ReplyModel();
            return(View(articleModel));
        }
예제 #9
0
        public MainArticle AddMainArticleFromModel(MainArticleModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            var mainArticle = GetMainArticleFromModel(model);

            if (mainArticle.Show && !CheckMainArticleState())
            {
                throw new Exception($"can not add main article {mainArticle.ArticleId} - reached maximum count. Remove or hide any existing main articles");
            }

            _mainArticleRepository.Insert(mainArticle);

            return(mainArticle);
        }
예제 #10
0
        public async Task <ActionResult> Create([Bind(Include = "Subject,ContentText")] MainArticleModel mainArticleModel)
        {
            string forum = TempData["Forum"].ToString();

            try
            {
                if (ModelState.IsValid)
                {
                    mainArticleModel.Forum = db.Categories.Where(c => c.ContentText.Equals(forum)).First();
                    await repository.Insert(mainArticleModel);

                    return(RedirectToAction("Index", "MainArticleModels", new { title = forum }));
                }
            }
            catch (DataException)
            {
                return(RedirectToAction("DataError", "Error", new { message = "儲存錯誤" }));
            }

            return(View(mainArticleModel));
        }
예제 #11
0
        private MainArticle GetMainArticleFromModel(MainArticleModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            var article = _articleService.GetArticleById(model.ArticleId);

            if (article == null)
            {
                throw new Exception($"article {model.ArticleId} not found");
            }

            return(new MainArticle
            {
                ArticleId = article.Id,
                Article = article,
                Show = model.Show,
            });
        }
예제 #12
0
        public MainArticle UpdateMainArticleFromModel(int mainArticleId, MainArticleModel model)
        {
            var mainArticle = _mainArticleRepository.Set().FirstOrDefault(ma => ma.ArticleId == mainArticleId);

            if (mainArticle == null)
            {
                throw new Exception($"main article {mainArticleId} not found");
            }

            var newMainArticle = GetMainArticleFromModel(model);

            if (!mainArticle.Show && newMainArticle.Show && !CheckMainArticleState())
            {
                throw new Exception($"can not update status for main article {mainArticle.ArticleId} - reached maximum count. Remove or hide any existing main articles");
            }

            mainArticle.Article = newMainArticle.Article;
            mainArticle.Show    = newMainArticle.Show;

            _mainArticleRepository.Update(mainArticle);

            return(mainArticle);
        }
 async public Task Update(object obj)
 {
     MainArticleModel mainArticleModel = obj as MainArticleModel;
     await dbSave.Save(db);
 }