Ejemplo n.º 1
0
        public IEnumerable <NotificacaoDto> Get(int idUsuario, bool notificacaoLida, out bool nenhumaNotificacao)
        {
            nenhumaNotificacao = false;
            var notificacoes = _notificacaoRepository.Get(idUsuario).OrderByDescending(x => x.DataCadastro).ToList();

            if (!notificacoes.Any())
            {
                nenhumaNotificacao = true;
                return(notificacoes);
            }

            if (notificacaoLida)
            {
                return(notificacoes.Where(x => x.DataLeitura != null));
            }

            notificacoes = notificacoes.Where(x => x.DataLeitura == null).ToList();

            if (!notificacoes.Any())
            {
                return(notificacoes);
            }

            _notificacaoRepository.OpenTransaction();

            foreach (var notificacao in notificacoes.Where(x => x.DataLeitura == null))
            {
                _notificacaoRepository.PutDataLeitura(notificacao.Id);
            }

            _notificacaoRepository.CommitTransaction();

            return(notificacoes);
        }