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