public IActionResult GetModelos()
        {
            try
            {
                EfetuarPrevisao efetuaModelos = new EfetuarPrevisao(configuration, logger);
                var             modelos       = efetuaModelos.CarregaModeloMetrica();

                if (modelos == null)
                {
                    modelos = new RegistroModelo();
                }

                Dictionary <string, object> param = new Dictionary <string, object>
                {
                    { "filiais", modelos.Filial.ToString() },
                    { "modelos", modelos.Secao.ToString() },
                    { "rmse", modelos.RootMeanSquaredError.ToString("N2") }
                };
                return(Json(param));
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "Consulta modelos");
                throw ex;
            }
        }
        public IActionResult GetDados([FromBody] dynamic filtro)
        {
            EfetuarPrevisao efetuarPrevisao = new EfetuarPrevisao(configuration, logger);

            try
            {
                ProjecaoFiltroViewModel filtroViewModel = JsonConvert.DeserializeObject <ProjecaoFiltroViewModel>(filtro.ToString());

                var dados = efetuarPrevisao.CarregaPrevisao(filtroViewModel.DtIniTrat, filtroViewModel.DtFimTrat, filtroViewModel.Filiais, filtroViewModel.Categorias);

                if (dados == null)
                {
                    dados = new List <RegistroCmv>();
                }

                return(Json(dados));
            }
            catch
            {
                throw;
            }
            finally
            {
                efetuarPrevisao = null;
            }
        }
        public IActionResult Getdetalhes([FromBody] dynamic filtro)
        {
            EfetuarPrevisao efetuarPrevisao = new EfetuarPrevisao(configuration, logger);

            try
            {
                ProjecaoFiltroViewModel filtroViewModel = JsonConvert.DeserializeObject <ProjecaoFiltroViewModel>(filtro.ToString());

                var dados = efetuarPrevisao.CarregaPrevisaoDetalhada(filtroViewModel.DtIniTrat, filtroViewModel.DtFimTrat, filtroViewModel.Filiais, filtroViewModel.Categorias);

                if (dados == null)
                {
                    dados = new List <RegistroCmv>();
                }

                //var filiais = treinarModelos.ListarFiliais();
                var categorias = treinarModelos.ListarCategorias();

                var qryFil = from p in dados
                             where p.Erro >= -0.10 && p.Erro <= 0.10
                             select p;

                dados = qryFil.ToList();

                foreach (var previsao in dados)
                {
                    //var qryFil = from p in filiais
                    //             where p.Filial == previsao.Filial
                    //             select p;

                    //if (qryFil != null && qryFil.Any())
                    //{
                    //    previsao.Nome = qryFil.First().Nome;
                    //}

                    var qrySec = from p in categorias
                                 where p.Secao == previsao.Secao &&
                                 p.Grupo == previsao.Grupo &&
                                 p.SubGrupo == previsao.SubGrupo
                                 select p;

                    if (qrySec != null && qrySec.Any())
                    {
                        previsao.Categoria = qrySec.First().Categoria;
                    }
                }

                return(Json(dados));
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                efetuarPrevisao = null;
            }
        }
        public IActionResult GetDados([DataSourceRequest] DataSourceRequest request)
        {
            List <RegistroModelo> registroModelos = null;
            EfetuarPrevisao       efetuarPrevisao = new EfetuarPrevisao(configuration, logger);

            registroModelos = efetuarPrevisao.CarregaModelosMetricas();

            if (registroModelos == null)
            {
                registroModelos = new List <RegistroModelo>();
            }

            var lstFiliais    = treinarModelos.ListarFiliais();
            var lstCategorias = treinarModelos.ListarCategorias();

            foreach (var filial in lstFiliais)
            {
                var qry = from p in registroModelos
                          where p.Filial == filial.Filial
                          select p;

                if (qry != null && qry.Any())
                {
                    foreach (var modelo in qry)
                    {
                        modelo.DFilial = filial.Nome;
                    }
                }
            }

            foreach (var categoria in lstCategorias)
            {
                var qry = from p in registroModelos
                          where p.Secao == categoria.Secao &&
                          p.Grupo == categoria.Grupo &&
                          p.SubGrupo == categoria.SubGrupo
                          select p;

                if (qry != null && qry.Any())
                {
                    foreach (var modelo in qry)
                    {
                        modelo.Categoria = categoria.Categoria;
                    }
                }
            }

            DataSourceResult result = registroModelos.ToDataSourceResult(request);

            return(Json(result));
        }