public ICommandResult Handler(UpdateCATCommand command) { //Validar dados de entrada - fail fast validation command.Validate(); if (!command.IsValid) { return(new GenericCommandResult(false, "Ops! Operação não pode ser realizada. Cheque as informações retornadas.", command.Notifications)); } //Validar se cnpj esta vinculado a outro CAT if (_repository.Search(x => x.CNPJ == command.CNPJ && x.Id != command.Id).Any()) { return(new GenericCommandResult(false, "Já existe um CAT com este CNPJ", null)); } var cat = _repository.GetById(command.Id); //Validar se pode desativar if (command.Active == false && cat.Active == true) { cat.MarkInactive(); } if (!cat.IsValid) { return(new GenericCommandResult(false, "Ops! Operação não pode ser realizada. Cheque as informações retornadas.", cat.Notifications)); } if (command.Active == true && cat.Active == false) { cat.MarkActive(); } cat.UpdateCNPJ(command.CNPJ); cat.UpdateCompanyName(command.CompanyName); cat.UpdateFantasyName(command.FantasyName); _repository.Update(cat); return(new GenericCommandResult(true, "CAT atualizado!", cat)); }
public CAT GetById([FromServices] ICATRepository repository, Guid id) { return(repository.GetById(id)); }