Esempio n. 1
0
        public ActionResult Create(ArticleModel model, bool continueEditing)
        {
            if (ModelState.IsValid)
            {
                var article = model.ToEntity();
                article.CreateDate = DateTime.Now;
                article.UpdateDate = DateTime.Now;

                if (model.CategoryId == 0)
                {
                    article.CategoryId = null;
                }

                //标签
                foreach (var id in model.SelectedTags)
                {
                    article.Tags.Add(_articleService.GetTagById(id));
                }

                _articleService.InsertArticle(article);

                SuccessNotification("添加成功");

                return(continueEditing ? RedirectToAction("Edit", new { id = article.Id }) : RedirectToAction("List"));
            }

            PrepareModel(model);

            return(View(model));
        }
Esempio n. 2
0
        public ActionResult Edit(ArticleModel model, bool continueEditing)
        {
            var article = _articleService.GetArticleById(model.Id);

            if (ModelState.IsValid)
            {
                int prevPictureId = article.PictureId;

                article            = model.ToEntity(article);
                article.UpdateDate = DateTime.Now;

                if (model.CategoryId == 0)
                {
                    article.CategoryId = null;
                }

                //标签
                var allTags = _articleService.GetAllTag().ToList();
                foreach (var tag in allTags)
                {
                    if (model.SelectedTags != null && model.SelectedTags.Contains(tag.Id))
                    {
                        if (article.Tags.Count(t => t.Id == tag.Id) == 0)
                        {
                            article.Tags.Add(tag);
                        }
                    }
                    else
                    {
                        if (article.Tags.Count(t => t.Id == tag.Id) > 0)
                        {
                            article.Tags.Remove(tag);
                        }
                    }
                }

                _articleService.UpdateArticle(article);

                //图片处理, 删除旧图片
                if (prevPictureId > 0 && prevPictureId != article.PictureId)
                {
                    var prevPicture = _pictureService.GetPictureById(prevPictureId);
                    if (prevPicture != null)
                    {
                        _pictureService.DeletePicture(prevPicture);
                    }
                }

                SuccessNotification("保存成功");
                return(continueEditing ? RedirectToAction("Edit", new { id = article.Id }) : RedirectToAction("List"));
            }

            PrepareModel(model, article);

            return(View(model));
        }
Esempio n. 3
0
 public ActionResult Edit(ArticleModel articleModel)
 {
     if (ModelState.IsValid)
     {
         articleModel.UpdateAt = DateTime.Now;
         Article article = articleModel.ToEntity();
         articleCRUD.Update(article);
         return(RedirectToAction("Index"));
     }
     articleModel.CategorySelectItems = getCateGorys();
     return(View(articleModel));
 }
Esempio n. 4
0
 public ActionResult Create(ArticleModel articleModel)
 {
     if (ModelState.IsValid)
     {
         articleModel.ArticleID = Guid.NewGuid().ToString();
         articleModel.CreateAt  = DateTime.Now;
         articleModel.UpdateAt  = DateTime.Now;
         string userID = HttpContext.Session["UserID"] as string;
         articleModel.UserID = userID;
         Article article = articleModel.ToEntity();
         articleCRUD.Create(article);
         return(RedirectToAction("Index"));
     }
     articleModel.CategorySelectItems = getCateGorys();
     return(View(articleModel));
 }
Esempio n. 5
0
        public async Task <ArticleModel> CreateArticle(Guid userId, Guid courseId, ArticleModel articleModel)
        {
            // TODO work with files
            var userCourse = await Db.ApplicationUserCourses.Include(uc => uc.Course)
                             .Where(uc => uc.ApplicationUserId == userId && uc.CourseId == courseId && uc.IsOwner)
                             .SingleOrDefaultAsync();

            if (userCourse == null)
            {
                return(null);
            }

            var article = articleModel.ToEntity();

            userCourse.Course.Articles.Add(article);

            await Db.SaveChangesAsync();

            return(article.ToDto(article.InformationBlocks));
        }
Esempio n. 6
0
        public async Task <ArticleModel> UpdateArticleAsync(ArticleModel model)
        {
            model = model ?? throw new ArgumentNullException(nameof(model));

            try
            {
                Article entity = await this.repo.UpdateArticleAsync(model.ToEntity()).ConfigureAwait(false);

                if (entity == null)
                {
                    return(null);
                }

                ArticleModel updatedModel = new ArticleModel();
                updatedModel.ToModel(entity);

                return(updatedModel);
            }
            catch
            {
                throw;
            }
        }
Esempio n. 7
0
        public string NewsEdit(ArticleModel model)
        {
            //#region 操作日志
            ////yungchu
            ////敏感字-无
            //BizLog bizlog = new BizLog()
            //{
            //	Summary = "新闻编辑",
            //	KeywordType = KeywordType.ArticleId,
            //	Keyword = model.ArticleID.ToString(),
            //	UserCode = _workContext.User.UserUame,
            //	UserRealName = _workContext.User.UserUame,
            //	UserType = UserType.LMS_User,
            //	SystemCode = SystemType.LMS,
            //	ModuleName = "新闻管理"
            //};

            //_operateLogServices.WriteLog(bizlog, model);
            //#endregion

            model.LastUpdatedBy = _workContext.User == null ? "" : _workContext.User.UserUame;
            model.LastUpdatedOn = DateTime.Now;
            return(_newService.UpdateNews(model.ToEntity <Article>()));
        }
Esempio n. 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="model"></param>
        /// <param name="fileFolderPath">Need folders {fileFolderPath}/Files/ArticleFiles</param>
        /// <returns></returns>
        public async Task <ArticleModel> CreateArticleAsync(ArticleModel model, string fileFolderPath)
        {
            model          = model ?? throw new ArgumentNullException(nameof(model));
            fileFolderPath = fileFolderPath ?? throw new ArgumentNullException(nameof(fileFolderPath));

            try
            {
                Article entity = await this.repo.CreateArticleAsync(model.ToEntity(), fileFolderPath).ConfigureAwait(false);

                if (entity == null)
                {
                    return(null);
                }

                ArticleModel addedModel = new ArticleModel();
                addedModel.ToModel(entity);

                return(addedModel);
            }
            catch
            {
                throw;
            }
        }
        public ActionResult Create(ArticleModel model, HttpPostedFileBase datafile)
        {
            string command = Request.Form["submit"].ToString();

            switch (command)
            {
            case "Save":
            case "SaveAndContinueEdit":
                var alias        = Util.GetSEOAlias(model.Name);
                var checkArticle = _articleService.GetArticleByAlias(alias, model.CategoryId);
                if (checkArticle != null)
                {
                    ModelState.AddModelError("Name", "Alias đã được sử dụng");
                }
                if (ModelState.IsValid)
                {
                    if (model.CategoryId > 0)
                    {
                        var category = _categoryService.GetCategoryById(model.CategoryId);
                        if (category == null)
                        {
                            ErrorNotification("Danh mục không tồn tại.");
                            return(View(model));
                        }
                    }
                    var now = DateTime.Now;
                    if (datafile != null)
                    {
                        string[] fileExtensions = { ".jpg", ".jpeg", ".gif", ".png" };
                        string   extension      = Path.GetExtension(datafile.FileName).ToLower();
                        if (fileExtensions.Contains(extension))
                        {
                            string currentDir = _rootDir;
                            var    filePath   = _rootDir + datafile.FileName;
                            if (!Directory.Exists(Server.MapPath(currentDir)))
                            {
                                Directory.CreateDirectory(Server.MapPath(currentDir));
                            }
                            var path = Path.Combine(Server.MapPath(currentDir), Path.GetFileName(datafile.FileName));
                            datafile.SaveAs(path);
                            model.ImgPath = filePath;
                        }
                    }
                    if (model.Description == null)
                    {
                        model.Description = "";
                    }
                    try
                    {
                        var article = model.ToEntity();
                        article.CategoryId      = model.CategoryId;
                        article.Name            = model.Name;
                        article.CreatedOn       = now;
                        article.ModifiedOn      = now;
                        article.Content         = model.Content;
                        article.Status          = model.Status;
                        article.Description     = model.Description;
                        article.ImgPath         = model.ImgPath;
                        article.MetaTitle       = model.MetaTitle;
                        article.MetaDescription = model.MetaDescription;
                        article.Alias           = Util.GetSEOAlias(model.Name);
                        model.IsHighlight       = model.IsHighlight;
                        _articleService.AddArticle(article);

                        SuccessNotification("Thêm mới bài viết thành công!");
                        if (command == "SaveAndContinueEdit")
                        {
                            Title = "Thêm mới bài viết : " + article.Name;
                        }
                        else
                        {
                            return(RedirectToAction("Index"));
                        }
                    }
                    catch (Exception e)
                    {
                        ErrorNotification(e.ToString());
                    }
                }
                else
                {
                    AddModelStateErrors();
                }
                break;

            default:
                ErrorNotification("Không rõ phương thức submit dữ liệu");
                return(RedirectToAction("Index"));
            }
            model.ListCategories = _categoryService.GetAllCategory().ToList();

            Title = "Thêm mới danh mục";
            ViewData["ToolbarTitle"] = Title;
            return(View(model));
        }
Esempio n. 10
0
 public string AddNews(ArticleModel model)
 {
     model.CreatedBy = _workContext.User == null?"": _workContext.User.UserUame;
     model.CreatedOn = DateTime.Now;
     return(_newService.AddNews(model.ToEntity <Article>()));
 }
Esempio n. 11
0
        public ActionResult Edit(ArticleModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
                return AccessDeniedView();

            var article = _articleService.GetArticleById(model.Id);
            if (article == null)
                //No news item found with the specified id
                return RedirectToAction("List");

            if (ModelState.IsValid)
            {
                article = model.ToEntity(article);
                article.StartDateUtc = model.StartDate;
                article.EndDateUtc = model.EndDate;
                _articleService.UpdateArticle(article);

                //search engine name
                model.SeName = article.ValidateSeName(model.SeName, article.Title, true);
                _urlRecordService.SaveSlug(article, model.SeName, 0);

                //locales
                UpdateLocales(article, model);
                _articleService.UpdateArticle(article);

                SuccessNotification(_localizationService.GetResource("Toi.Plugin.Misc.Articles.Article.Updated"));
                return continueEditing ? RedirectToAction("Edit", new { id = article.Id }) : RedirectToAction("List");
            }
            PrepareArticleModel(model);
            return View(model);
        }
Esempio n. 12
0
        public ActionResult Create(ArticleModel model, bool continueEditing)
        {
            if (ModelState.IsValid)
            {
                var article = model.ToEntity();
                article.StartDateUtc = model.StartDate;
                article.EndDateUtc = model.EndDate;
                article.CreatedOnUtc = DateTime.UtcNow;
                _articleService.InsertArticle(article);

                //search engine name
                model.SeName = article.ValidateSeName(model.SeName, article.Title, true);
                _urlRecordService.SaveSlug(article, model.SeName, 0);

                //locales
                UpdateLocales(article, model);
                _articleService.UpdateArticle(article);

                SuccessNotification(_localizationService.GetResource("Toi.Plugin.Misc.Articles.Article.Added"));
                return continueEditing ? RedirectToAction("Edit", new { id = article.Id }) : RedirectToAction("List");
            }

            return View(model);
        }