/// <summary> /// 新增文章 /// </summary> /// <param name="request">文章信息</param> /// <returns></returns> public async Task <ResultModel <string> > InsertAsync(AddArticleRequest request) { var response = new ResultModel <string>(); var article = new ArticleInfo() { Abstract = request.Abstract, Title = request.Title, IsPublished = request.IsPublished, Likes = request.Likes, Views = request.Views, Comments = request.Comments, ImageUrl = request.ImageUrl }; var content = new ArticleContent() { Content = request.Content }; var result = await _articleRepository.UseTranAsync(async() => { //插入文章基本信息 var id = await _articleRepository.InsertAsync(article); content.ArticleId = id; //插入文章内容信息 await _articleContentRepository.InsertAsync(content); var articleTags = request.TagIds.Select(tagId => new ArticleTag() { TagId = tagId.ObjToInt(), ArticleId = id }).ToList(); await _articleTagRepository.InsertAsync(articleTags); var articleCategories = request.CategoryIds.Select(categoryId => new ArticleCategory() { ArticleId = id, CategoryId = categoryId.ObjToInt() }).ToList(); await _articleCategoryRepository.InsertAsync(articleCategories); }); response.IsSuccess = result.IsSuccess; response.ResultInfo = result.ErrorMessage; return(response); }
public void ShouldCreateAnArticle() { // Arrange var request = new AddArticleRequest { Content = Content, Description = Description, Title = Title }; // Act var article = _factory.Create(request, UserId); // Assert Assert.Equal(request.Content, article.Content); Assert.Equal(request.Title, article.Title); Assert.Equal(request.Description, article.Description); Assert.Equal(UserId, article.AuthorId); Assert.True(article.EverPublished); }
public async Task <IActionResult> AddArticlePost([FromForm] AddArticleRequest request, [FromServices] ITagService tagService) { if (!ModelState.IsValid) { return(View("AddArticle", request)); } string userId = this.GetViewerUserId(); var key = await _articleService.Add(userId, request).CAF(); await tagService.AddOrUpdateTagsPerArticle(key, request.TagsAsString).CAF(); _logger.LogInformation("Created a new article by user: {UserId} with article key: {articleId}", userId, key.Id); return(RedirectToAction("Index", "Article", new { articleId = key.Id })); }
public async Task <IActionResult> AddArticle([FromBody] AddArticleRequest request) { return(await MethodWrapper(async (param) => { await Context.Articles.AddAsync( new Article { Content = param.Content, Preview = new ArticlePreview { DateTime = DateTime.UtcNow, Preview = request.Preview, Title = request.Title, } }); await Context.SaveChangesAsync(); return Ok(); }, request)); }
public Article Map(AddArticleRequest request) { if (request == null) { return(null); } Article article = new Article { Name = request.Name, MaterialType = request.MaterialType, IsArchived = request.IsArchived, IsDiscontinued = request.IsDiscontinued, IsBatch = request.IsBatch, IsMultistock = request.IsMultistock, IsProvisionEnabled = request.IsProvisionEnabled, IsDiscountEnabled = request.IsDiscountEnabled, IsDisposition = request.IsDisposition, IsCasting = request.IsCasting, ScaleUnitQty = request.ScaleUnitQty, ScaleUnitType = request.ScaleUnitType, UnitStock = request.UnitStock, UnitStockIn = request.UnitStockIn, UnitStockOut = request.UnitStockOut, DimArea = request.DimArea, DimLength = request.DimLength, Dim2 = request.Dim2, Dim3 = request.Dim3, Dim4 = request.Dim4, SpecificWeight = request.SpecificWeight, ItemNumber = request.ItemNumber, DrawingNumber = request.DrawingNumber, DinNorm1 = request.DinNorm1, DinNorm2 = request.DinNorm2, ArticleGroupId = request.ArticleGroupId, ArticleTypeId = request.ArticleTypeId, }; return(article); }
public async Task <ActionResult> AddArticle(AddArticleRequest article) { if (this.ModelState.IsValid) { // Set Random tag just to simplify app var random = new Random(); var tagIds = new List <int>(); tagIds.Add(random.Next(1, 8)); tagIds.Add(random.Next(1, 8)); await this.blogCommandService.CreatArticle(new AddArticleModel { Header = article.Header, Body = article.Body, TeaderText = article.TeaserText, AuthorId = this.User.Identity.GetUserId(), TagsId = tagIds }); return(RedirectToAction("MyArticles")); } return(View()); }
/// <summary> /// 添加文章 /// </summary> /// <param name="request"></param> /// <param name="userId"></param> /// <returns></returns> public async Task <ApiResult> AddArticleAsync(AddArticleRequest request, long userId) { var response = new ApiResult(); try { var defaultCategoryId = default(long); var user = await _userRepository.TableNotTracking .FirstOrDefaultAsync(item => item.Id == userId && item.Status == 1); if (user == null) { response.Code = Code.Error; response.Message = "查无用户"; return(response); } //有传分类Id直接赋值 if (request.CategoryId.HasValue) { defaultCategoryId = request.CategoryId.Value; } else { //没有传分类Id,获取默认分类。若不存在默认分类请新建 var category = await _categoryRepository.TableNotTracking .FirstOrDefaultAsync(item => item.UserId == userId && item.Status == 1 && item.IsDefault == 1); if (category == null) { var newCategory = new Category(true) { IsDefault = 1, Status = 1, CategoryName = "默认分类", CreateTime = DateTime.Now, UserId = userId, Creator = user.UserName }; await _categoryRepository.InsertAsync(newCategory); category = newCategory; } defaultCategoryId = category.Id; } var article = new Article(true) { Title = request.Title, Describe = request.Describe, CategoryId = defaultCategoryId, Status = 1, CreateTime = DateTime.Now, Creator = user.UserName, UserId = userId }; var detail = new ArticleDetail(true) { ArticleId = article.Id, Content = request.Content, ContentType = request.ContentType, CreateTime = DateTime.Now, Creator = user.UserName, Status = 1 }; await _articleRepository.InsertAsync(article); await _articleDetailRepository.InsertAsync(detail); await _work.SaveChangesAsync(); response.Code = Code.Ok; response.Message = "添加成功"; return(response); } catch (Exception ex) { _logger.LogError($"添加文章异常;method={nameof(AddArticleAsync)};param={request?.ToJson()};exception messges={ex.Message}"); response.Code = Code.Error; response.Message = $"添加文章异常:{ex.Message}"; return(response); } }
public bool SaveImageNameAndText(SaveImageNameAndTextRequest request) { IList <string> srcArr = new List <string>(); //获取当前用户 string username = HttpContext.Session.GetString("username"); var txt = request.TextContent.Trim(); //以【】来区分标题 int start = txt.IndexOf('【'); int end = txt.IndexOf('】'); var title = txt.Substring(start, end + 1); //切割字符串获取内容 string[] strs = txt.Split(title); var context = strs[1].Trim(); if (context == null) { return(false); } //初始化Article var article = new AddArticleRequest() { ClassId = request.ClassId, TagId = request.TagId, ArticleTitle = title, ArticleContext = context, IsDelete = false, CreateTime = DateTime.Now.Date, UserName = username, ViewCount = 0, CommmentCount = 0, Context = request.Source }; var articleId = _articleService.AddArticle(AutoMapper.Mapper.Map <ArticleModel>(article)); string strRegExPattern = @"<img[^>]+(src)\s*=\s*""?([^ "">]+)""?(?:[^>]+(width|height)\s*=\s*""?([^ "">]+)""?\s+(height|width)\s*=\s*""?([^ "">]+)""?)?(?:[^>]+(alt)\s*=\s*""?([^"">]+)""?)?"; Regex re = new Regex(strRegExPattern, RegexOptions.IgnoreCase); Match m = re.Match(request.Source); while (m.Success) { srcArr.Add(m.Groups[2].Value); m = m.NextMatch(); } if (srcArr.Count() > 0) { foreach (var src in srcArr) { var photo = new AddPhotoRequest() { ArticleId = articleId, Url = src }; _photoService.AddPhoto(AutoMapper.Mapper.Map <PhotoModel>(photo)); } } else { var photo = new AddPhotoRequest() { ArticleId = articleId, Url = "images/pic_home_news_1.jpg" }; _photoService.AddPhoto(AutoMapper.Mapper.Map <PhotoModel>(photo)); } return(true); }
public long AddArticle(AddArticleRequest request) { return(_articleService.AddArticle(AutoMapper.Mapper.Map <ArticleModel>(request))); }
public ActionResult AddArticle() { var model = new AddArticleRequest(); return(View(model)); }
public ArticleResponse AddArticle([FromBody] AddArticleRequest reqModel) { return(_articleService.AddArticle(reqModel)); }
public async Task <IActionResult> Post(AddArticleRequest request) { RespContainer <ArticleResponse> result = await _mediator.Send(new AddArticleCommand(request)); return(CreatedAtAction(nameof(GetById), new { id = result.Data.Id }, result)); }
public ArticleResponse AddArticle(AddArticleRequest reqModel) { return(new ArticleResponse { Article = _articleRepository.Add(reqModel.Article) }); }