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);
        }
Пример #2
0
        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);
        }
Пример #4
0
        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);
        }