Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
330 views
in Technique[技术] by (71.8m points)

asp.net - Pass filtered data by GET request (params) controller (Asp Net c#)

I am trying to send filtered data according to what the front sends by parameter, but in doing so it is returning to me the entire value of the logic I put in the "var", not in the IFs that I pointed to

       public async Task<ActionResult> GetRelatorio(
        int? id = null,
        int[] situacao = null)
    {
        IQueryable<OrdemServico> qos = db.OrdemServico
                       .Include(os => os.ClienteNavigation)


        if (situacao != null && situacao.Length > 0)
        {
            qos = qos.Where(os => situacao.Contains(os.Situacao));
        }
        else
        {
            qos = qos.Where(os => os.Situacao != 6);
        }

        try
        {
            var emDia = db.OrdemServico.Where(o => (o.Situacao == 0 || o.Situacao == 1 || o.Situacao == 3 || (o.Situacao == 2 && o.StatusNegocio == 0))
            && o.DataSignificativa != null && (o.DataSignificativa.Value - DateTime.Now).TotalDays == 0).Count();

            var atrasadas = db.OrdemServico.Where(o => (o.Situacao == 0 || o.Situacao == 1 || o.Situacao == 3 || (o.Situacao == 2 && o.StatusNegocio == 0))
            && o.DataSignificativa != null && (o.DataSignificativa.Value - DateTime.Now).TotalDays < 0).Count();

            var noPrazo = db.OrdemServico.Where(o => (o.Situacao == 0 || o.Situacao == 1 || o.Situacao == 3 || (o.Situacao == 2 && o.StatusNegocio == 0))
            && o.DataSignificativa != null && (o.DataSignificativa.Value - DateTime.Now).TotalDays > 0).Count();

            return Json(new { emDia = emDia, atrasadas = atrasadas, noPrazo = noPrazo });      

        }
        catch (Exception)
        {
            return Json(new { error = "Erro ao consultar dados" });
        }
    }

The front asks for the request like this

 this.$axios.get("/Operacional/GetRelatorio", axiosParams)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Should the var values be using qos, not db.OrdemServico?

var emDia = qos.Where(o => (o.Situacao == 0 || o.Situacao == 1 || o.Situacao == 3 || (o.Situacao == 2 && o.StatusNegocio == 0))
            && o.DataSignificativa != null && (o.DataSignificativa.Value - DateTime.Now).TotalDays == 0).Count();

var atrasadas = qos.Where(o => (o.Situacao == 0 || o.Situacao == 1 || o.Situacao == 3 || (o.Situacao == 2 && o.StatusNegocio == 0))
            && o.DataSignificativa != null && (o.DataSignificativa.Value - DateTime.Now).TotalDays < 0).Count();

var noPrazo = qos.Where(o => (o.Situacao == 0 || o.Situacao == 1 || o.Situacao == 3 || (o.Situacao == 2 && o.StatusNegocio == 0))
            && o.DataSignificativa != null && (o.DataSignificativa.Value - DateTime.Now).TotalDays > 0).Count();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...