public async Task <AjaxResult> Apply(BlogInputDto dto) { Check.NotNull(dto, nameof(dto)); OperationResult result = await BlogsContract.ApplyForBlog(dto); return(result.ToAjaxResult()); }
public async Task <IPagedEntities <BlogDto> > GetBlogsAdminAsync(BlogInputDto input) { IQueryable <Blog> query = _context.Blogs.Include(x => x.Categories) .Where(p => p.CreatedBy == input.UserName); var totalSize = await query.AsNoTracking().CountAsync(); var orderQuery = query.Select(p => new BlogDto { Id = p.Id, Title = p.Title, Summary = p.Summary, NormalizeTitle = p.NormalizeTitle, Content = p.Content, UserName = p.CreatedBy, CreatedDate = p.CreatedDate, Categories = p.Categories.Select(y => new CategoryDto { CategoryId = y.Id, Name = y.Category.Name }).ToList() }).OrderBy(p => p.CreatedDate); return(await Method.EntityWithPaging <BlogDto>(orderQuery, totalSize, input.page - 1, Constant.PageSize)); }
/// <summary> /// 申请博客信息 /// </summary> /// <param name="dto">申请博客信息DTO信息</param> /// <returns>业务操作结果</returns> public virtual async Task <OperationResult> ApplyForBlog(BlogInputDto dto) { Check.Validate(dto, nameof(dto)); // 博客是以当前用户的身份来申请的 ClaimsPrincipal principal = _serviceProvider.GetCurrentUser(); if (principal == null || !principal.Identity.IsAuthenticated) { return(new OperationResult(OperationResultType.Error, "用户未登录或登录已失效")); } int userId = principal.Identity.GetUserId <int>(); User user = await UserRepository.GetAsync(userId); if (user == null) { return(new OperationResult(OperationResultType.QueryNull, $"编号为“{userId}”的用户信息不存在")); } Blog blog = BlogRepository.TrackQuery(m => m.UserId == userId).FirstOrDefault(); if (blog != null) { return(new OperationResult(OperationResultType.Error, "当前用户已开通博客,不能重复申请")); } if (await CheckBlogExists(m => m.Url == dto.Url)) { return(new OperationResult(OperationResultType.Error, $"Url 为“{dto.Url}”的博客已存在,不能重复添加")); } blog = dto.MapTo <Blog>(); blog.UserId = userId; int count = await BlogRepository.InsertAsync(blog); return(count > 0 ? new OperationResult(OperationResultType.Success, "博客申请成功") : OperationResult.NoChanged); }