Exemple #1
0
        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;
            }
        }