Exemplo n.º 1
0
        public void VotarAprobarPropuesta(Propuesta propuesta) {

            if (propuesta.getID().Equals(0) || propuesta.Equals(null))
            {
                throw new ArgumentNullException("Administrador (Votar Aprobar Propuesta) - Propuesta invalida.");
            }
            else
            {
                if (propuesta.getAprobada().Equals(true))
                {
                    throw new ArgumentException("Administrador (Votar Aprobar Propuesta) - La Propuesta ya se encuentra aprobada.");
                }
                else
                {
                    if (propuesta.getPreAprobada().Equals(false))
                    {
                        throw new ArgumentException("Administrador (Votar Aprobar Propuesta) - La Propuesta aun no se a Pre-Aprobado por la comunidad.");
                    }
                    else
                    {
                        int contador = 0;
                        Administrador admin;
                        ArrayList admins = propuesta.getAdminVotaron();
                            for (int i = 0; i < 3; i++)
                            {
                                admin = (Administrador)admins[i];
                                if (admin.getID().Equals(getID()))
                                {
                                    throw new ArgumentException("Administrador (Votar Aprobar Propuesta) - Usted ya voto en esta propuesta.");
                                }
                                if (!admin.getID().Equals(0))
                                {
                                    contador++;
                                }
                            }
                            if (contador < 3 || propuesta.getVotosAprobarAdmin().Equals(3))
                            {
                                for (int i = 0; i < 3; i++)
                                {
                                    admin = (Administrador)admins[i];
                                    if (admin.getID().Equals(0))
                                    {
                                        admins.Insert(i,new Administrador(getID(),getActivo(),getContrasena(),getApodo(),getCorreo(),getOcupacion(),getIntereses()));
                                        propuesta.setAdminVotaron(admins);
                                        propuesta.setVotosAprobarAdmin(propuesta.getVotosAprobarAdmin()+1);
                                        break;
                                    }
                                }
                            }
                            else
                            {
                                throw new ArgumentOutOfRangeException("Administrador (Votar Aprobar Propuesta) - Ya han votado 3 Administradorese en esta Propuesta");
                            }
                    }
                }
            }
        }