示例#1
0
        public async Task <Result <CommandResult> > Handle(CreateCardCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                await PublishValidationErrorsAsync(request);

                return(Result.Failure <CommandResult>(ApplicationMessages.Create_Failed));
            }


            var project = _mapper.Map <Card>(request);

            var exist = await _projectRepository.ExistByNameAsync(project.Id, project.Name);

            if (exist)
            {
                await _mediator.Publish(new DomainNotification("", ApplicationMessages.Name_Already_Exist));

                return(Result.Failure <CommandResult>(ApplicationMessages.Create_Failed));
            }

            await _projectRepository.CreateAsync(project);

            return(Result.Success(new CommandResult(project.Id, ApplicationMessages.Create_Success)));
        }