public string All(FornecedorPesquisa parametros, int totalPerPage, int page)
        {
            var fornecedorRules = new FornecedorRules();

            var paging = new Paging()
            {
                page = page,
                totalPerPage = totalPerPage
            };

            return Success(fornecedorRules.All(parametros, paging), paging);
        }
        public List<Fornecedor> FetchAll(FornecedorPesquisa parametros, Paging paging)
        {
            var sql = PetaPoco.Sql.Builder.Append("SELECT SQL_CALC_FOUND_ROWS Fornecedor.*, Endereco.*, Cidade.*")
                                          .Append("FROM Fornecedor")
                                          .Append("JOIN FornecedorEndereco ON FornecedorEndereco.FornecedorId = Fornecedor.Id")
                                          .Append("JOIN Endereco ON Endereco.Id = FornecedorEndereco.EnderecoId")
                                          .Append("LEFT JOIN Cidade ON Cidade.Id = Endereco.CidadeId")
                                          .Append("WHERE 1 = 1");

            if (parametros.RazaoSocial != null) {
                sql.Append("AND Fornecedor.RazaoSocial LIKE @0", '%' + parametros.RazaoSocial + '%');
            }

            if (parametros.Fantasia != null)
            {
                sql.Append("AND Fornecedor.Fantasia LIKE @0", '%' + parametros.Fantasia + '%');
            }

            if (parametros.Cnpj != null)
            {
                sql.Append("AND Fornecedor.Cnpj LIKE @0", '%' + parametros.Cnpj + '%');
            }

            sql.Append("ORDER BY Fornecedor.Fantasia");
            sql.Append("LIMIT @0, @1", paging.LimitDown, paging.LimitUp);

            this.Db.BeginTransaction();

            var fornecedores = this.Db.Fetch<Fornecedor, Endereco, Cidade, Fornecedor>((f, e, c) => {
                e.Cidade = c;
                f.Endereco = e;

                return f;
            }, sql);

            paging.total = this.Db.ExecuteScalar<int>("SELECT FOUND_ROWS()");

            this.Db.CompleteTransaction();

            return fornecedores.ToList();
        }
示例#3
0
        public List<Fornecedor> All(FornecedorPesquisa parametros, Paging paging)
        {
            var fornecedorRepositorio = new FornecedorRepositorio();

            return fornecedorRepositorio.FetchAll(parametros, paging);
        }