Esempio n. 1
0
        public IEnumerable <AlertaGeral> Get(int?tipoAlerta = null, int?situacao = null)
        {
            var result = _repository.GetAll().OrderByDescending(x => x.Severidade);

            if (tipoAlerta == 2)
            {
                var resultInversao = situacao == null?
                                     _repositoryInversao.GetAll().Select(y => y.CdProduto)
                                         : _repositoryInversao.GetAll().Where(c => c.CdAlertaStatus == situacao).Select(y => y.CdProduto);

                switch (situacao)
                {
                case 1:
                    return(result.ToList().Where(x => resultInversao.Contains(x.CdProduto) &&
                                                 x.Pendente > 0));

                    break;

                case 2:
                    return(result.ToList().Where(x => resultInversao.Contains(x.CdProduto) &&
                                                 x.Analise > 0));

                    break;

                case 3:
                    return(result.ToList().Where(x => resultInversao.Contains(x.CdProduto) &&
                                                 x.Concluido > 0));

                    break;

                default:
                    return(result);

                    break;
                }
            }

            else if (tipoAlerta == 3)
            {
                var resultUltimoCusto = situacao == null?_repositoryUltimoCusto.GetAll().Select(y => y.CdProduto)
                                            : _repositoryUltimoCusto.GetAll().Where(c => c.CdAlertaStatus == situacao).Select(y => y.CdProduto);

                switch (situacao)
                {
                case 1:
                    return(result.Where(x => resultUltimoCusto.Contains(x.CdProduto) &&
                                        x.Pendente > 0));

                    break;

                case 2:
                    return(result.Where(x => resultUltimoCusto.Contains(x.CdProduto) &&
                                        x.Analise > 0));

                    break;

                case 3:
                    return(result.Where(x => resultUltimoCusto.Contains(x.CdProduto) &&
                                        x.Concluido > 0));

                    break;

                default:
                    return(result.Where(x => resultUltimoCusto.Contains(x.CdProduto) && x.AlertaEmAberto > 0));

                    break;
                }
            }

            else
            {
                switch (situacao)
                {
                case 1:
                    return(result.Where(x => x.Pendente > 0));

                    break;

                case 2:
                    return(result.Where(x => x.Analise > 0));

                    break;

                case 3:
                    return(result.Where(x => x.Concluido > 0));

                    break;

                default:
                    return(result.Where(x => x.AlertaEmAberto > 0));

                    break;
                }
            }
        }