Ejemplo n.º 1
0
        public bool Salvar(BancoDTO dto)
        {
            if (!EhPermitidoSalvar())
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.PrivilegiosInsuficientes, TypeMessage.Error);
                return(false);
            }

            if (dto == null)
            {
                throw new ArgumentNullException("dto");
            }

            if (!dto.Id.HasValue)
            {
                messageQueue.Add(string.Format(Resource.Sigim.ErrorMessages.CampoObrigatorio, "Código do banco"), TypeMessage.Error);
                return(false);
            }

            if (dto.Id.Value == 0)
            {
                messageQueue.Add(string.Format(Resource.Sigim.ErrorMessages.CampoInvalido, "Código do banco"), TypeMessage.Error);
                return(false);
            }

            if (string.IsNullOrEmpty(dto.Nome))
            {
                messageQueue.Add(string.Format(Resource.Sigim.ErrorMessages.CampoObrigatorio, "Descrição"), TypeMessage.Error);
                return(false);
            }

            bool novoItem = false;

            var banco = bancoRepository.ObterPeloId(dto.Id);

            if (banco == null)
            {
                banco    = new Banco();
                novoItem = true;
            }
            banco.Id                     = dto.Id;
            banco.Nome                   = dto.Nome;
            banco.Ativo                  = true;
            banco.NumeroRemessa          = dto.NumeroRemessa;
            banco.NumeroRemessaPagamento = dto.NumeroRemessaPagamento;
            banco.InterfaceEletronica    = dto.InterfaceEletronica;

            if (Validator.IsValid(banco, out validationErrors))
            {
                if (novoItem)
                {
                    bancoRepository.Inserir(banco);
                }
                else
                {
                    bancoRepository.Alterar(banco);
                }

                bancoRepository.UnitOfWork.Commit();
                messageQueue.Add(Resource.Sigim.SuccessMessages.SalvoComSucesso, TypeMessage.Success);
                return(true);
            }
            else
            {
                messageQueue.AddRange(validationErrors, TypeMessage.Error);
            }

            return(false);
        }