public TituloCalculado RegistrarTitulo(ComandoRegistraTitulo comando) { UnidadeTrabalho.Iniciar(); using (UnidadeTrabalho) { var titulo = comando.Id == 0 ? new Titulo() : _repositorioTitulo.ObterPorChave(comando.Id) ?? new Titulo(); DefinirCampos(ref titulo, comando); if (titulo.Id == 0) { titulo.Id = comando.Id; _repositorioTitulo.Adicionar(titulo); } else { _repositorioTitulo.Atualizar(titulo); } UnidadeTrabalho.Confirmar(); return(titulo.CalcularTitulo(DateTime.Now)); } }
public void ValidarEAtualizar(Titulo titulo) { try { titulo.Validar(); if (!titulo.EhValido) { throw new System.ArgumentException(titulo.ObterMensagensValidacao()); } using (var unidadeTrabalho = _repositorioTitulo.TransactionScope()) { var retornoTitulo = CalcularTitulo(titulo); _repositorioTitulo.Atualizar(retornoTitulo); unidadeTrabalho.Complete(); } } catch (System.Exception) { throw; } }