public async Task <bool> Handle(AddSupplierCommand request, CancellationToken cancellationToken) { var company = _companyRepository.Find(request.CompanyID); if (company == null) { await _bus.RaiseEvent(new DomainErrorNotification("NotAllowed", "Company informed does not exists.")); return(false); } if (await _supplierRepository.ExistsSupplierWithCPFCNPJ(request.CpfCnpj)) { await _bus.RaiseEvent(new DomainErrorNotification("Conflict", "Supplier with informed CPF/CNPJ already exists.")); return(false); } if (company.UF.ToString().Equals("PR") && CPF.IsCpf(request.CpfCnpj) && request.BirthDate.Value.Age() < 18) { await _bus.RaiseEvent(new DomainErrorNotification("NotAllowed", "Underage Supplier not permmited.")); return(false); } _repository.Add(new Supplier(request.Name, (CPFCNPJ)request.CpfCnpj, request.Phones, company, request.SupplierID, request.BirthDate, (RG)request.Rg)); return(Commit()); }