private void ValideRegrasDeNumeroDeSerie()
        {
            // Números incompativeis com a quantidade
            if (_interacao.InformaNumeroDeSerie && _interacao.NumerosDeSerie.Count != _interacao.QuantidadeInterada)
            {
                _listaDeInconsistencias.Add(
                    new Inconsistencia()
                {
                    Modulo                         = "Controle de Estoque",
                    Tela                           = "Cadastro de Interações",
                    ConceitoValidado               = "Interação",
                    NomeDaPropriedadeValidada      = "NumerosDeSerie",
                    DescricaoDaPropriedadeValidada = "Lista de números de série",
                    Mensagem                       = Mensagens.DEVE_SER_INFORMADOS_NS_PARA_TODOS_OS_PRODUTOS(_interacao.NumerosDeSerie.Count, _interacao.QuantidadeInterada)
                });
            }

            // Primeiro validamos se existe algum número de série na lista para evitar gastar processamento
            if (_interacao.NumerosDeSerie == null || _interacao.NumerosDeSerie.Count == 0)
            {
                return;
            }

            using (var servicoDeInteracao = new ServicoDeInteracao())
            {
                foreach (var numeroDeSerie in _interacao.NumerosDeSerie)
                {
                    // Consultamos se o número de série existe para evitar gastar processamento
                    if (!MapeadorDeNumeroDeSerie().VerifiqueSeExisteEmBanco(numeroDeSerie))
                    {
                        continue;
                    }

                    var estahEmEstoque = servicoDeInteracao.VerifiqueSeNumeroDeSerieEstahEmEstoque(numeroDeSerie);

                    if (_interacao.TipoDeInteracao == EnumTipoDeInteracao.ENTRADA && estahEmEstoque)
                    {
                        _listaDeInconsistencias.Add(
                            new Inconsistencia()
                        {
                            Modulo                         = "Controle de Estoque",
                            Tela                           = "Cadastro de Interações",
                            ConceitoValidado               = "Interação",
                            NomeDaPropriedadeValidada      = "NumerosDeSerie",
                            DescricaoDaPropriedadeValidada = "Lista de números de série",
                            Mensagem                       = Mensagens.UM_PRODUTO_COM_O_NUMERO_DE_SERIE_X_JA_ESTA_EM_ESTOQUE(numeroDeSerie)
                        });
                    }

                    if (_interacao.TipoDeInteracao == EnumTipoDeInteracao.SAIDA && !estahEmEstoque)
                    {
                        _listaDeInconsistencias.Add(
                            new Inconsistencia()
                        {
                            Modulo                         = "Controle de Estoque",
                            Tela                           = "Cadastro de Interações",
                            ConceitoValidado               = "Interação",
                            NomeDaPropriedadeValidada      = "NumerosDeSerie",
                            DescricaoDaPropriedadeValidada = "Lista de números de série",
                            Mensagem                       = Mensagens.NAO_E_POSSIVEL_DAR_SAIDA_DO_NUMERO_DE_SERIE_X(numeroDeSerie)
                        });
                    }
                }
            }
        }