public async Task <ValidationResult> Handle(AddItemCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { return(request.ValidationResult); } var item = new Item(request.Id, request.Name, request.Description, request.Category); if (await _showcaseRepository.GetByNameWithoutTracking(request.Name) != null) { AddError("The name of the item has been existed."); return(ValidationResult); } item.AddDomainEvent(new AddedItemEvent(item.Id, item.Name, item.Description, item.Category)); _showcaseRepository.Add(item); return(await Commit(_showcaseRepository.UnitOfWork)); }