/* Metod: PostAnnonsor
         * Beskrivning: Denna metod lägger till en annonsör (prenumerant eller företag) i databasen AnnonsDB
         * Returnerar: Den nya annonsören som har lagts till
         */
        public int PostAnnonsor(Annonsorer nyAnnonsor, out string errormsg)
        {
            SqlConnection dbConnection = new SqlConnection
            {
                ConnectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=AnnonsDB;Integrated Security=True"
            };

            string sqlString = "INSERT INTO Tbl_Annonsorer (An_Fornamn, An_Efternamn, An_Foretagsnamn, An_Organisationsnummer, An_Epost, " +
                               "An_Mobil, An_Utdelningsadress, An_UPostnummer, An_UOrt, An_Fakturaadress, An_FPostnummer, An_FOrt, An_Personnummer, An_AnnonsPris) " +
                               "VALUES(@An_Fornamn, @An_Efternamn, @An_Foretagsnamn, @An_Organisationsnummer, @An_Epost, @An_Mobil, @An_Utdelningsadress, " +
                               "@An_UPostnummer, @An_UOrt, @An_Fakturaadress, @An_FPostnummer, @An_FOrt, @An_Personnummer, @An_AnnonsPris)";

            SqlCommand dbCommand = new SqlCommand(sqlString, dbConnection);

            if (nyAnnonsor.An_Fornamn == null)
            {
                dbCommand.Parameters.AddWithValue("@An_Fornamn", DBNull.Value);
            }
            else
            {
                dbCommand.Parameters.Add("An_Fornamn", SqlDbType.NVarChar, 50).Value = nyAnnonsor.An_Fornamn;
            }
            if (nyAnnonsor.An_Efternamn == null)
            {
                dbCommand.Parameters.AddWithValue("@An_Efternamn", DBNull.Value);
            }
            else
            {
                dbCommand.Parameters.Add("An_Efternamn", SqlDbType.NVarChar, 50).Value = nyAnnonsor.An_Efternamn;
            }
            if (nyAnnonsor.An_Foretagsnamn == null)
            {
                dbCommand.Parameters.AddWithValue("@An_Foretagsnamn", DBNull.Value);
            }
            else
            {
                dbCommand.Parameters.Add("An_Foretagsnamn", SqlDbType.NVarChar, 50).Value = nyAnnonsor.An_Foretagsnamn;
            }
            if (nyAnnonsor.An_Organisationsnummer == null)
            {
                dbCommand.Parameters.AddWithValue("@An_Organisationsnummer", DBNull.Value);
            }
            else
            {
                dbCommand.Parameters.Add("An_Organisationsnummer", SqlDbType.NVarChar, 50).Value = nyAnnonsor.An_Organisationsnummer;
            }
            dbCommand.Parameters.Add("An_Epost", SqlDbType.NVarChar, 50).Value            = nyAnnonsor.An_Epost;
            dbCommand.Parameters.Add("An_Mobil", SqlDbType.NVarChar, 10).Value            = nyAnnonsor.An_Mobil;
            dbCommand.Parameters.Add("An_Utdelningsadress", SqlDbType.NVarChar, 50).Value = nyAnnonsor.An_Utdelningsadress;
            dbCommand.Parameters.Add("An_UPostnummer", SqlDbType.NVarChar, 5).Value       = nyAnnonsor.An_UPostnummer;
            dbCommand.Parameters.Add("An_UOrt", SqlDbType.NVarChar, 50).Value             = nyAnnonsor.An_UOrt;
            if (nyAnnonsor.An_Fakturaadress == null)
            {
                dbCommand.Parameters.AddWithValue("@An_Fakturaadress", DBNull.Value);
            }
            else
            {
                dbCommand.Parameters.Add("An_Fakturaadress", SqlDbType.NVarChar, 50).Value = nyAnnonsor.An_Fakturaadress;
            }
            if (nyAnnonsor.An_FPostnummer == null)
            {
                dbCommand.Parameters.AddWithValue("@An_FPostnummer", DBNull.Value);
            }
            else
            {
                dbCommand.Parameters.Add("An_FPostnummer", SqlDbType.NVarChar, 5).Value = nyAnnonsor.An_FPostnummer;
            }
            if (nyAnnonsor.An_FOrt == null)
            {
                dbCommand.Parameters.AddWithValue("@An_FOrt", DBNull.Value);
            }
            else
            {
                dbCommand.Parameters.Add("An_FOrt", SqlDbType.NVarChar, 50).Value = nyAnnonsor.An_FOrt;
            }
            if (nyAnnonsor.An_Personnummer == null)
            {
                dbCommand.Parameters.AddWithValue("@An_Personnummer", DBNull.Value);
            }
            else
            {
                dbCommand.Parameters.Add("An_Personnummer", SqlDbType.NVarChar, 10).Value = nyAnnonsor.An_Personnummer;
            }
            dbCommand.Parameters.Add("An_AnnonsPris", SqlDbType.NVarChar, 50).Value = nyAnnonsor.An_AnnonsPris;

            try
            {
                dbConnection.Open();
                int i = 0;
                i = dbCommand.ExecuteNonQuery();
                if (i == 1)
                {
                    errormsg = "";
                }
                else
                {
                    errormsg = "Det skapas ingen ny annonsör i databasen";
                }
                return(i);
            }
            catch (Exception e)
            {
                errormsg = e.Message;
                return(0);
            }
            finally
            {
                dbConnection.Close();
            }
        }
        /* Metod: GetAnnonsorId
         * Beskrivning: Denna metod hämtar en annonsör som finns i databasen AnnonsDB
         * Returnerar: En annonsör som finns längst bak/ner i tabellen i syfte om att hitta annonsörens id
         */
        public Annonsorer GetAnnonsorId(out string errormsg)
        {
            SqlConnection dbConnection = new SqlConnection
            {
                ConnectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=AnnonsDB;Integrated Security=True"
            };

            string sqlString = "SELECT TOP 1 * FROM [Tbl_Annonsorer] ORDER BY [An_Id] DESC";

            SqlCommand dbCommand = new SqlCommand(sqlString, dbConnection);

            SqlDataAdapter adapter = new SqlDataAdapter(dbCommand);
            DataSet        ds      = new DataSet();

            try
            {
                dbConnection.Open();
                adapter.Fill(ds, "AnnonsorerTbl");

                int count = 0;
                int i     = 0;
                count = ds.Tables["AnnonsorerTbl"].Rows.Count;

                if (count > 0)
                {
                    Annonsorer annonsor = new Annonsorer();
                    annonsor.An_Id                  = Convert.ToInt32(ds.Tables["AnnonsorerTbl"].Rows[i]["An_Id"]);
                    annonsor.An_Fornamn             = ds.Tables["AnnonsorerTbl"].Rows[i]["An_Fornamn"].ToString();
                    annonsor.An_Efternamn           = ds.Tables["AnnonsorerTbl"].Rows[i]["An_Efternamn"].ToString();
                    annonsor.An_Foretagsnamn        = ds.Tables["AnnonsorerTbl"].Rows[i]["An_Foretagsnamn"].ToString();
                    annonsor.An_Organisationsnummer = ds.Tables["AnnonsorerTbl"].Rows[i]["An_Organisationsnummer"].ToString();
                    annonsor.An_Utdelningsadress    = ds.Tables["AnnonsorerTbl"].Rows[i]["An_Utdelningsadress"].ToString();
                    annonsor.An_UPostnummer         = ds.Tables["AnnonsorerTbl"].Rows[i]["An_UPostnummer"].ToString();
                    annonsor.An_UOrt                = ds.Tables["AnnonsorerTbl"].Rows[i]["An_UOrt"].ToString();
                    annonsor.An_Fakturaadress       = ds.Tables["AnnonsorerTbl"].Rows[i]["An_Fakturaadress"].ToString();
                    annonsor.An_FPostnummer         = ds.Tables["AnnonsorerTbl"].Rows[i]["An_FPostnummer"].ToString();
                    annonsor.An_FOrt                = ds.Tables["AnnonsorerTbl"].Rows[i]["An_FOrt"].ToString();
                    annonsor.An_Epost               = ds.Tables["AnnonsorerTbl"].Rows[i]["An_Epost"].ToString();
                    annonsor.An_Mobil               = ds.Tables["AnnonsorerTbl"].Rows[i]["An_Mobil"].ToString();
                    annonsor.An_Personnummer        = ds.Tables["AnnonsorerTbl"].Rows[i]["An_Personnummer"].ToString();
                    annonsor.An_AnnonsPris          = Convert.ToInt32(ds.Tables["AnnonsorerTbl"].Rows[i]["An_AnnonsPris"]);

                    errormsg = "Det senaste id:et går inte att hämta!";
                    return(annonsor);
                }
                else
                {
                    errormsg = "Det hämtas ingen annons. Kontrollera id:et igen!";
                    return(null);
                }
            }
            catch (Exception e)
            {
                errormsg = e.Message;
                return(null);
            }
            finally
            {
                dbConnection.Close();
            }
        }