public ICommandResult Handle(EmissaoNotaFiscalCommand command) { if (command == null) { return(new CommandResult(false, "Não foi possível gravar a Nota Fiscal")); } //Fail Fast Validation command.Validate(); if (command.Invalid) { AddNotifications(command); return(new CommandResult(false, "Não foi possível gravar a Nota Fiscal")); } //Emitir a nota fiscal NotaFiscal notaFiscal = this.EmitirNotaFiscal(command); //Agrupar as Validações AddNotifications(notaFiscal, command); //Checar as notificações if (Invalid) { return(new CommandResult(false, "Não foi possível gravar a Nota Fiscal")); } //Gerar XML if (_XmlService.Gravar(notaFiscal)) { //Salvar as informações _repository.CreateNotaFiscal(notaFiscal); } //Retornar informações return(new CommandResult(true, "Nota Fiscal armazenada com sucesso")); }