public List <RelatorioTotalizacaoLocalizacaoItem> BuscarDadosTotalizacaoLocalizacao(RelatorioTotalizacaoLocalizacaoFiltro model)
        {
            var query = BuscarDadosTotalizacaoLocalizacaoQuery(model);

            return(query.ToList());
        }
        private IQueryable <RelatorioTotalizacaoLocalizacaoItem> BuscarDadosTotalizacaoLocalizacaoQuery(RelatorioTotalizacaoLocalizacaoFiltro model)
        {
            var baseQuery = Entities.LoteProdutoEndereco.AsNoTracking().Where(lpe =>
                                                                              lpe.IdEmpresa == model.IdEmpresa &&
                                                                              lpe.EnderecoArmazenagem.IdNivelArmazenagem == model.IdNivelArmazenagem &&
                                                                              lpe.EnderecoArmazenagem.IdPontoArmazenagem == model.IdPontoArmazenagem
                                                                              );

            if (model.CorredorInicial.HasValue && model.CorredorFinal.HasValue)
            {
                var count = model.CorredorInicial.Value == model.CorredorFinal.Value ? 1 : (model.CorredorFinal.Value - model.CorredorInicial.Value) + 1;

                var range = Enumerable.Range(model.CorredorInicial.Value, count);

                baseQuery = baseQuery.Where(y => range.Contains(y.EnderecoArmazenagem.Corredor));
            }

            var query = baseQuery.Select(bq => new RelatorioTotalizacaoLocalizacaoItem
            {
                CodigoEndereco    = bq.EnderecoArmazenagem.Codigo,
                ReferenciaProduto = bq.Produto.Referencia,
                Unidade           = bq.Produto.UnidadeMedida.Descricao,
                Quantidade        = bq.Quantidade
            });

            return(query);
        }