예제 #1
0
        /// <summary>
        /// Zusätzliche Informationen zu einem Benutzer aufgrund eines Nutzernames erhalten
        /// </summary>
        /// <param name="nutzername">Nutzername des zu suchenden Benutzers</param>
        /// <returns></returns>
        public User GetByName(string nutzername)
        {
            try
            {
                User user = null;
                StaticDB.Connect();

                string com = "SELECT base.Nutzername, info.ErstelltAm, info.Infotext, info.OnlyCustomName, info.CustomName, bild.Bild " +
                             "FROM User_Base AS base " +
                             "INNER JOIN User_Info AS info " +
                             "ON info.Nutzername = base.Nutzername " +
                             "LEFT JOIN User_Bild AS bild " +
                             "ON bild.Nutzername = base.Nutzername " +
                             $"WHERE base.Nutzername = '{nutzername}';";
                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                var r = command.ExecuteReader();

                while (r.Read())
                {
                    user = new User()
                    {
                        Nutzername     = r.GetString(0),
                        ErstelltAm     = r.GetDateTime(1),
                        InfoText       = r.GetString(2),
                        OnlyCustomName = StaticDB.ConvertByteToBool(r.GetByte(3)),
                        CustomName     = r.GetString(4)
                    };

                    if (!r.IsDBNull(5))
                    {
                        user.ProfilBild = (byte[])r[5];
                    }
                }

                StaticDB.Connection.Close();
                user.AnzahlFollower = GetAnzahlFollower(user.Nutzername);

                return(user);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }