public async Task <int> Handle(AddBlogCommand request, CancellationToken cancellationToken) { var userDetailId = _httpContextAccessor.HttpContext.User.FindFirstValue("UserDetailId"); Blog blog = new Blog { Title = request.Title, Description = request.Description, IsDraft = request.IsDraft, CategoryId = request.CategoryId, UserDetailId = int.Parse(userDetailId) }; var htmlTagStrippedDescription = HtmlStripper.StripHTML(request.Description); var shortDescriptionLength = htmlTagStrippedDescription.Length < 350 ? htmlTagStrippedDescription.Length : 350; blog.ShortDescription = htmlTagStrippedDescription.Substring(0, shortDescriptionLength); if (!request.IsDraft) { blog.PostedDate = DateTime.UtcNow; } await _myBlogDbContext.Blogs.AddAsync(blog); await _myBlogDbContext.SaveChangesAsync(cancellationToken); return(blog.Id); }
public async Task <int> Handle(AddCategoryCommand request, CancellationToken cancellationToken) { var category = new Category { Name = request.Name }; await _context.Categories.AddAsync(category); await _context.SaveChangesAsync(cancellationToken); return(category.Id); }
public async Task <Unit> Handle(DeleteUserCommand request, CancellationToken cancellationToken) { var user = await _myBlogDbContext.UserDetails.FirstOrDefaultAsync(x => !x.IsDeleted && x.Id == request.Id); if (user == null) { throw new NotFoundException(nameof(UserDetail), request.Id); } user.IsDeleted = true; user.DeleteDateTime = DateTime.UtcNow; user.DeletedBy = request.DeletedBy; _myBlogDbContext.UserDetails.Update(user); await _myBlogDbContext.SaveChangesAsync(cancellationToken); return(Unit.Value); }
public async Task <int> Handle(AddUserCommand request, CancellationToken cancellationToken) { UserDetail user = new UserDetail { UserName = request.UserName, Address = request.Address, FacebookUrl = request.FacebookUrl, GithubUrl = request.GithubUrl, LinkedinUrl = request.LinkedinUrl, TwitterUrl = request.TwitterUrl, Name = new PersonName(request.FirstName, request.LastName) }; await _myBlogDbContext.UserDetails.AddAsync(user); await _myBlogDbContext.SaveChangesAsync(cancellationToken); return(user.Id); }
public async Task <Unit> Handle(DeleteCategoryCommand request, CancellationToken cancellationToken) { var category = await _context.Categories.FindAsync(request.Id); if (category == null) { throw new NotFoundException(nameof(Category), request.Id); } if (category.Blogs.Count() > 0) { throw new DeleteFailureException(nameof(Category), request.Id, deleteFailureMessage); } _context.Categories.Remove(category); await _context.SaveChangesAsync(cancellationToken); return(Unit.Value); }