Example #1
0
        public List<Condominio> Search(CondominioSearch param)
        {
            var condominioRepositorio = new CondominioRepositorio();
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            return condominioRepositorio.Search(param, unidade);
        }
        public string All(CondominioSearch param)
        {
            var rules = new CondominioRules();

            return this.Success(rules.Search(param));
        }
        public List<Condominio> Search(CondominioSearch param, Unidade unidade)
        {
            var sql = PetaPoco.Sql.Builder.Append("SELECT Condominio.*, Endereco.*, Cidade.*, Unidade.*")
                                          .Append("FROM Condominio")
                                          .Append("INNER JOIN Endereco ON Endereco.Id = Condominio.EnderecoId")
                                          .Append("LEFT JOIN Cidade ON Cidade.Id = Endereco.CidadeId")
                                          .Append("INNER JOIN Unidade ON Unidade.Id = Condominio.UnidadeId")
                                          .Append("AND (Unidade.Hierarquia LIKE @0 OR Unidade.Id = @1)", unidade.GetFullLevelHierarquia() + "%", unidade.Id);

            if (param.Rank > 0)
            {
                sql.Where("Condominio.Rank = @0", param.Rank);
            }

            if(param.Nome != null && param.Nome.Length > 0)
            {
                sql.Where("Condominio.Nome LIKE @0", "%" + param.Nome + "%");
            }

            if (param.Administradora != null)
            {
                sql.Where("Condominio.AdministradoraId = @0", param.Administradora.Id);
            }

            if (param.Unidade != null)
            {
                sql.Where("Condominio.UnidadeId = @0", param.Unidade.Id);
            }

            if (param.Endereco != null)
            {

                if (param.Endereco.Cep != null && param.Endereco.Cep.Length > 0)
                {
                    sql.Where("Endereco.Cep LIKE @0", "%" + param.Endereco.Cep + "%");
                }

                if (param.Endereco.Numero != null && param.Endereco.Numero.Length > 0)
                {
                    sql.Where("Endereco.Numero LIKE @0", "%" + param.Endereco.Numero + "%");
                }

                if (param.Endereco.Rua!=null && param.Endereco.Rua.Length > 0)
                {
                    sql.Where("Endereco.Rua LIKE @0", "%" + param.Endereco.Rua + "%");
                }

                if (param.Endereco.Bairro != null && param.Endereco.Bairro.Length > 0)
                {
                    sql.Where("Endereco.Bairro LIKE @0", "%" + param.Endereco.Bairro + "%");
                }

                if (param.Endereco.Cidade != null)
                {
                    sql.Where("Endereco.CidadeId = @0", param.Endereco.Cidade.Id);
                }
            }

            return this.Db.Fetch<Condominio, Endereco, Cidade, Unidade, Condominio>((c, e, cd, u)=> {

                c.Endereco = e;
                c.Endereco.Cidade = cd;
                c.Unidade = u;

                return c;
            }, sql);
        }