コード例 #1
0
        /// <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);
        }
コード例 #2
0
ファイル: ArticleFactoryTesting.cs プロジェクト: Morr0/Atheer
        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);
        }
コード例 #3
0
ファイル: ArticleEditController.cs プロジェクト: Morr0/Atheer
        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
            }));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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());
        }
コード例 #7
0
        /// <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);
            }
        }
コード例 #8
0
        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);
        }
コード例 #9
0
 public long AddArticle(AddArticleRequest request)
 {
     return(_articleService.AddArticle(AutoMapper.Mapper.Map <ArticleModel>(request)));
 }
コード例 #10
0
        public ActionResult AddArticle()
        {
            var model = new AddArticleRequest();

            return(View(model));
        }
コード例 #11
0
 public ArticleResponse AddArticle([FromBody] AddArticleRequest reqModel)
 {
     return(_articleService.AddArticle(reqModel));
 }
コード例 #12
0
ファイル: ArticleController.cs プロジェクト: SeBastArt/ERP
        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));
        }
コード例 #13
0
 public ArticleResponse AddArticle(AddArticleRequest reqModel)
 {
     return(new ArticleResponse {
         Article = _articleRepository.Add(reqModel.Article)
     });
 }