//Lägger till en ny biljett...
 public void PrivilegieListView_InsertItem(Privilegie privilegie)
 {
     if (ModelState.IsValid)
     {
         try
         {
             Service.SavePrivilegie(privilegie);
             Session["confirmtab"] = String.Format("Ett Privilegie har skapats");
             Response.Redirect(Request.RawUrl);
         }
         catch
         {
             ModelState.AddModelError(string.Empty, "Kunde inte skapa Privilegie, Har du rätt Biljett ID?");
         }
     }
 }
        //uppdaterar kontakten med de nya vrdena!
        public void UpdatePrivilegie(Privilegie privilegie)
        {
            using (var con = CreateConnection())
            {
                try
                {
                    var cmd = new SqlCommand("appSchema.UpdatePrivilegieNEW", con);
                    cmd.CommandType = CommandType.StoredProcedure;

                    cmd.Parameters.Add("@PrivilegieID", SqlDbType.Int, 4).Value = privilegie.PrivilegieID;
                    cmd.Parameters.Add("@PrivilegieTyp", SqlDbType.NVarChar, 30).Value = privilegie.PrivilegieTyp;
                    cmd.Parameters.Add("@BiljettID", SqlDbType.Int, 10).Value = privilegie.BiljettID;

                    con.Open();
                    cmd.ExecuteNonQuery();

                }
                catch
                {
                    throw new ApplicationException("Ett fel har uppståt med anslutningen mot databasen.....");
                }
            }
        }
        //lägger in den nya kontakten!
        //public IEnumerable<Biljett> GetBiljettsPageWise(int maximumRows, int startRowIndex, out int totalRowCount)
        //{
        //    using (var con = CreateConnection())
        //    {
        //        try
        //        {
        //            var biljett = new List<Biljett>(100);
        //            var cmd = new SqlCommand("Person.uspGetContactsPageWise", con);
        //            cmd.CommandType = CommandType.StoredProcedure;
        //            cmd.Parameters.Add("@PageIndex", SqlDbType.Int, 4).Value = startRowIndex / maximumRows + 1;
        //            cmd.Parameters.Add("@PageSize", SqlDbType.Int, 4).Value = maximumRows;
        //            cmd.Parameters.Add("@RecordCount", SqlDbType.Int, 4).Direction = ParameterDirection.Output;
        //            con.Open();
        //            using (var reader = cmd.ExecuteReader())
        //            {
        //                var biljettIDIndex = reader.GetOrdinal("BesökarID");
        //                var PrisIndex = reader.GetOrdinal("Förnamn");
        //                var AntalIndex = reader.GetOrdinal("Efternamn");
        //                var RabattIndex = reader.GetOrdinal("TelefonNR");
        //                var BiljettTypIndex = reader.GetOrdinal("Köp");
        //                var BesokarIDIndex = reader.GetOrdinal("Bokning");
        //                while (reader.Read())
        //                {
        //                    biljett.Add(new Biljett
        //                    {
        //                        BiljettID = reader.GetInt32(biljettIDIndex),
        //                        Pris = reader.GetInt32(PrisIndex),
        //                        Antal = reader.GetInt32(AntalIndex),
        //                        Rabatt = reader.GetInt32(RabattIndex),
        //                        BiljettTyp = reader.GetString(BiljettTypIndex),
        //                        BesokarID = reader.GetInt32(BesokarIDIndex)
        //                    });
        //                }
        //            }
        //            totalRowCount = (int)cmd.Parameters["@RecordCount"].Value;
        //            biljett.TrimExcess();
        //            return biljett;
        //        }
        //        catch
        //        {
        //            throw new ApplicationException("An error occured during the connection with the database.");
        //        }
        //    }
        //}
        public void InsertPrivilegie(Privilegie privilegie)
        {
            using (var con = CreateConnection())
            {
                try
                {
                    var cmd = new SqlCommand("appSchema.createPrivilegie", con);
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add("@PrivilegieTyp", SqlDbType.NVarChar, 30).Value = privilegie.PrivilegieTyp;
                    cmd.Parameters.Add("@BiljettID", SqlDbType.Int, 10).Value = privilegie.BiljettID;

                    cmd.Parameters.Add("@PrivilegieID", SqlDbType.Int, 4).Direction = ParameterDirection.Output;  // vet inte om denna är rätt!

                    con.Open();
                    cmd.ExecuteNonQuery();

                    privilegie.BiljettID = (int)cmd.Parameters["@PrivilegieID"].Value;
                }
                catch
                {
                    throw new ApplicationException("Ett fel har uppståt med anslutningen mot databasen...");
                }
            }
        }
        // denna kommer spara privilegiet!
        public static void SavePrivilegie(Privilegie privilegie)
        {
            ICollection<ValidationResult> validatonResults = new List<ValidationResult>();

            if (privilegie.Validate(out validatonResults))
            {
                if (privilegie.PrivilegieID == 0)
                {
                    PrivilegieDAL.InsertPrivilegie(privilegie);
                }
                else
                {
                    PrivilegieDAL.UpdatePrivilegie(privilegie);
                }
            }
            else
            {
                var ex = new ApplicationException("Ett fel uppstod när du skulle spara privilegiet!");
                ex.Data.Add("ValidationResult", validatonResults);
                throw ex;
            }
        }