Esempio n. 1
0
 public void Usar_Entidade_User_E_Group_Com_Join_E_Where()
 {
     var user = new User("george");
     user.Ativo = true;
     var group = new Group("admin");
     group.AddPermissao("can_add_user");
     group.AddPermissao("can_remove_user");
     group.AddUser(user);
     ITable t_users = new Table("users");
     ITable t_groups = new Table("groups");
     t_users.Project(t_users["nome"], t_groups["descricao"])
         .Join(t_groups).On(t_users["group_id"] == t_groups["id"]);
     if (!string.IsNullOrEmpty(user.Nome))
     {
         t_users.Where(t_users["nome"].Like(user.Nome));
     }
     if (user.Ativo.HasValue)
     {
         t_users.Where(t_users["ativo"] == user.Ativo);
     }
     if (user.Nivel.HasValue)
     {
         t_users.Where(t_users["nivel"] == user.Nivel);
     }
     if (user.Data.HasValue)
     {
         t_users.Where(t_users["data"] > user.Data);
     }
     if (group.Permissoes.Count() > 0)
     {
         t_users.Where(t_groups["permissoes"].In(group.Permissoes.ToArray()));
     }
     string sql_expected = "SELECT users.nome, groups.descricao FROM users JOIN groups ON users.group_id = groups.id "
         + "WHERE users.nome LIKE @users_nome_1 AND users.ativo = @users_ativo_1 AND users.data > @users_data_1 "
         + "AND groups.permissoes IN ('can_add_user', 'can_remove_user')";
     Assert.AreEqual(sql_expected, t_users.ToSql());
 }
Esempio n. 2
0
 public void AddUser(User user)
 {
     user.Group = this;
     _Users.Add(user);
 }
Esempio n. 3
0
 public void Usar_Entidade_User_Com_Where()
 {
     var user = new User("george");
     var table_users = new Table("users");
     if (!string.IsNullOrEmpty(user.Nome))
     {
         table_users.Where(table_users["nome"].Like(user.Nome));
     }
     if (user.Ativo.HasValue)
     {
         table_users.Where(table_users["ativo"] == user.Ativo);
     }
     if (user.Data.HasValue)
     {
         table_users.Where(table_users["data"] >= user.Data);
     }
     if (user.Nivel.HasValue)
     {
         table_users.Where(table_users["nivel"] == user.Nivel);
     }
     string sql_expected = "SELECT * FROM users WHERE users.nome LIKE @users_nome_1 AND users.data >= @users_data_1";
     Assert.AreEqual(sql_expected, table_users.ToSql());
 }