public MachineWithPrivilleges[] Load(int groupID)
        {
            Dictionary<string, MachineWithPrivilleges> list = new Dictionary<string,MachineWithPrivilleges>();
            string sqlCmd = "SELECT * FROM machines LEFT JOIN privilleges ON guid = machine WHERE group_id = " + groupID.ToString();
            using (DbDataAdapter sqlAdapter = dataProvider.GetAdapter(dataProvider.GetCommand(sqlCmd, connection)))
            {
                DataTable dt = new DataTable();
                sqlAdapter.Fill(dt);
                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        MachineWithPrivilleges mwPriv;
                        if (list.ContainsKey(dr["guid"].ToString()))
                        {
                            mwPriv = list[dr["guid"].ToString()];
                        }
                        else
                        {
                            mwPriv = new MachineWithPrivilleges();
                            mwPriv.Description = dr["description"] != DBNull.Value ? (string)dr["description"] : null;
                            mwPriv.Guid = dr["guid"].ToString();
                            mwPriv.IP = (string)dr["ip"];
                            mwPriv.Name = (string)dr["name"];
                            list.Add(mwPriv.Guid, mwPriv);
                        }

                        if (mwPriv.Privilleges == null)
                        {
                            mwPriv.Privilleges = new int[1];
                            mwPriv.Privilleges[0] = (int)dr["permission"];
                        }
                        else
                        {
                            int [] temp = mwPriv.Privilleges;
                            mwPriv.Privilleges = new int[temp.Length+1];
                            temp.CopyTo(mwPriv.Privilleges, 0);
                            mwPriv.Privilleges[mwPriv.Privilleges.Length - 1] = (int)dr["permission"];
                        }

                    }
                }
            }
            return list.Values.ToArray();
        }
        public void GetUserData(string userName, string password, out MachineWithPrivilleges [] machines, out User user)
        {
            DBUser dbUser = new DBUser(dataProvider);
            dbUser.Connection = connection;
            dbUser.Load(userName, password);
            user = dbUser.BusinessObject;

            DBMachineToPrivCollection dbMachineCol = new DBMachineToPrivCollection(dataProvider);
            dbMachineCol.Connection = connection;
            machines = dbMachineCol.Load(dbUser.BusinessObject.Group);
        }