/// <summary> /// Retorna um objeto do tipo correto dependendo do tipo passado como parametro e ja adidiona o id /// </summary> /// <param name="tipo">tipo empresa, por exemplo</param> /// <param name="tipoid">id da empresa, por exemplo</param> /// <param name="perfilid">id d perfil</param> /// <param name="ids">id dos usuarios separados por virgula</param> /// <returns></returns> public IBaseLista TipoGenerico(int tipo, int tipoid, int perfilid, string ids) { IBaseLista lista; switch (tipo) { case PerfilTipo.CANAL: PerfilCanalLista canLista = new PerfilCanalLista(this.Perfil.Control.UsuarioID); canLista.FiltroSQL = "PerfilID=" + perfilid + " AND CanalID=" + tipoid + " AND UsuarioID in (" + ids + ")"; lista = canLista; break; case PerfilTipo.EMPRESA: PerfilEmpresaLista empLista = new PerfilEmpresaLista(this.Perfil.Control.UsuarioID); empLista.FiltroSQL = "PerfilID=" + perfilid + " AND EmpresaID=" + tipoid + " AND UsuarioID in (" + ids + ")"; lista = empLista; break; case PerfilTipo.ESPECIAL: PerfilEspecialLista espLista = new PerfilEspecialLista(this.Perfil.Control.UsuarioID); espLista.FiltroSQL = "PerfilID=" + perfilid + " AND UsuarioID in (" + ids + ")"; lista = espLista; break; case PerfilTipo.EVENTO: PerfilEventoLista eveLista = new PerfilEventoLista(this.Perfil.Control.UsuarioID); eveLista.FiltroSQL = "PerfilID=" + perfilid + " AND EventoID=" + tipoid + " AND UsuarioID in (" + ids + ")"; lista = eveLista; break; case PerfilTipo.LOCAL: PerfilLocalLista locLista = new PerfilLocalLista(this.Perfil.Control.UsuarioID); locLista.FiltroSQL = "PerfilID=" + perfilid + " AND LocalID=" + tipoid + " AND UsuarioID in (" + ids + ")"; lista = locLista; break; case PerfilTipo.REGIONAL: PerfilRegionalLista regLista = new PerfilRegionalLista(this.Perfil.Control.UsuarioID); regLista.FiltroSQL = "PerfilID=" + perfilid + " AND RegionalID=" + tipoid + " AND UsuarioID in (" + ids + ")"; lista = regLista; break; default: lista = null; break; } return(lista); }
/// <summary> /// Retorna um objeto do tipo correto dependendo do tipo passado como parametro e ja adidiona o id /// </summary> /// <param name="tipo">tipo empresa, por exemplo</param> /// <param name="tipoid">id da empresa, por exemplo</param> /// <param name="perfilid">id d perfil</param> /// <param name="usuarioid">id do usuario</param> /// <returns></returns> public IBaseBD TipoGenerico(int tipo, int tipoid, int perfilid, int usuarioid) { IBaseBD perfil; //TODO: porque aqui as condicoes sao perfilCanalLista.Tamanho==0 ????? switch (tipo) { case PerfilTipo.CANAL: PerfilCanalLista perfilCanalLista = new PerfilCanalLista(); perfilCanalLista.FiltroSQL = "PerfilID=" + perfilid; perfilCanalLista.FiltroSQL = "UsuarioID=" + usuarioid; perfilCanalLista.FiltroSQL = "CanalID=" + tipoid; perfilCanalLista.Carregar(); if (perfilCanalLista.Tamanho == 0) { PerfilCanal can = new PerfilCanal(this.Control.UsuarioID); can.PerfilID.Valor = perfilid; can.UsuarioID.Valor = usuarioid; can.CanalID.Valor = tipoid; perfil = can; } else { perfil = null; } break; case PerfilTipo.EMPRESA: PerfilEmpresaLista perfilEmpresaLista = new PerfilEmpresaLista(); perfilEmpresaLista.FiltroSQL = "PerfilID=" + perfilid; perfilEmpresaLista.FiltroSQL = "UsuarioID=" + usuarioid; perfilEmpresaLista.FiltroSQL = "EmpresaID=" + tipoid; perfilEmpresaLista.Carregar(); if (perfilEmpresaLista.Tamanho == 0) { PerfilEmpresa emp = new PerfilEmpresa(this.Control.UsuarioID); emp.PerfilID.Valor = perfilid; emp.UsuarioID.Valor = usuarioid; emp.EmpresaID.Valor = tipoid; perfil = emp; } else { perfil = null; } break; case PerfilTipo.ESPECIAL: PerfilEspecialLista perfilEspecialLista = new PerfilEspecialLista(); perfilEspecialLista.FiltroSQL = "PerfilID=" + perfilid; perfilEspecialLista.FiltroSQL = "UsuarioID=" + usuarioid; perfilEspecialLista.Carregar(); if (perfilEspecialLista.Tamanho == 0) { PerfilEspecial esp = new PerfilEspecial(this.Control.UsuarioID); esp.PerfilID.Valor = perfilid; esp.UsuarioID.Valor = usuarioid; perfil = esp; } else { perfil = null; } break; case PerfilTipo.EVENTO: PerfilEventoLista perfilEventoLista = new PerfilEventoLista(); perfilEventoLista.FiltroSQL = "PerfilID=" + perfilid; perfilEventoLista.FiltroSQL = "UsuarioID=" + usuarioid; perfilEventoLista.FiltroSQL = "EventoID=" + tipoid; perfilEventoLista.Carregar(); if (perfilEventoLista.Tamanho == 0) { PerfilEvento eve = new PerfilEvento(this.Control.UsuarioID); eve.PerfilID.Valor = perfilid; eve.UsuarioID.Valor = usuarioid; eve.EventoID.Valor = tipoid; perfil = eve; } else { perfil = null; } break; case PerfilTipo.LOCAL: PerfilLocalLista perfilLocalLista = new PerfilLocalLista(); perfilLocalLista.FiltroSQL = "PerfilID=" + perfilid; perfilLocalLista.FiltroSQL = "UsuarioID=" + usuarioid; perfilLocalLista.FiltroSQL = "LocalID=" + tipoid; perfilLocalLista.Carregar(); if (perfilLocalLista.Tamanho == 0) { PerfilLocal loc = new PerfilLocal(this.Control.UsuarioID); loc.PerfilID.Valor = perfilid; loc.UsuarioID.Valor = usuarioid; loc.LocalID.Valor = tipoid; perfil = loc; } else { perfil = null; } break; case PerfilTipo.REGIONAL: PerfilRegionalLista perfilRegionalLista = new PerfilRegionalLista(); perfilRegionalLista.FiltroSQL = "PerfilID=" + perfilid; perfilRegionalLista.FiltroSQL = "UsuarioID=" + usuarioid; perfilRegionalLista.FiltroSQL = "RegionalID=" + tipoid; perfilRegionalLista.Carregar(); if (perfilRegionalLista.Tamanho == 0) { PerfilRegional loc = new PerfilRegional(this.Control.UsuarioID); loc.PerfilID.Valor = perfilid; loc.UsuarioID.Valor = usuarioid; loc.RegionalID.Valor = tipoid; perfil = loc; } else { perfil = null; } break; default: perfil = null; break; } return(perfil); }
public int TipoID(int usuarioid) { if (tipoID != 0) { return(tipoID); } // ************************* // Este método é falho // Exemplo, posso ter Usuário com 2 perfis de Locais diferentes, // e o método retorna para LocalID =0 ?? switch (this.PerfilTipoID.Valor) { case PerfilTipo.CANAL: PerfilCanalLista perfilCanalLista = new PerfilCanalLista(); perfilCanalLista.FiltroSQL = "PerfilID=" + this.Control.ID; perfilCanalLista.FiltroSQL = "UsuarioID=" + usuarioid; perfilCanalLista.Carregar(); if (perfilCanalLista.Tamanho == 1) { perfilCanalLista.Primeiro(); tipoID = perfilCanalLista.PerfilCanal.CanalID.Valor; } else { tipoID = 0; } break; case PerfilTipo.EMPRESA: PerfilEmpresaLista perfilEmpresaLista = new PerfilEmpresaLista(); perfilEmpresaLista.FiltroSQL = "PerfilID=" + this.Control.ID; perfilEmpresaLista.FiltroSQL = "UsuarioID=" + usuarioid; perfilEmpresaLista.Carregar(); if (perfilEmpresaLista.Tamanho == 1) { perfilEmpresaLista.Primeiro(); tipoID = perfilEmpresaLista.PerfilEmpresa.EmpresaID.Valor; } else { tipoID = 0; } break; case PerfilTipo.ESPECIAL: case PerfilTipo.REGIONAL: tipoID = 0; break; case PerfilTipo.EVENTO: PerfilEventoLista perfilEventoLista = new PerfilEventoLista(); perfilEventoLista.FiltroSQL = "PerfilID=" + this.Control.ID; perfilEventoLista.FiltroSQL = "UsuarioID=" + usuarioid; perfilEventoLista.Carregar(); if (perfilEventoLista.Tamanho == 1) { perfilEventoLista.Primeiro(); tipoID = perfilEventoLista.PerfilEvento.EventoID.Valor; } else { tipoID = 0; } break; case PerfilTipo.LOCAL: PerfilLocalLista perfilLocalLista = new PerfilLocalLista(); perfilLocalLista.FiltroSQL = "PerfilID=" + this.Control.ID; perfilLocalLista.FiltroSQL = "UsuarioID=" + usuarioid; perfilLocalLista.Carregar(); if (perfilLocalLista.Tamanho == 1) { perfilLocalLista.Primeiro(); tipoID = perfilLocalLista.PerfilLocal.LocalID.Valor; } else { tipoID = 0; } break; default: tipoID = 0; break; } return(tipoID); }