public int PrintRemovedVehicle(string regNr, int forFree, out string info) //metod som hämtar ut det senaste borttagna fordonet, och väljer om avgiften ska vara gratis eller inte
        {
            string cmdText      = "ReturnRemovedVehicleInfo";                      //sql sp kommandot som ska hitta det senaste borttagna fordonet
            var    rowsAffected = 0;

            info = "";

            SqlConnection con = new SqlConnection();
            SqlCommand    cmd = new SqlCommand();
            SqlDataReader rdr = null;


            con.ConnectionString = conStr;
            cmd.CommandText      = cmdText;
            cmd.Connection       = con;
            cmd.CommandType      = System.Data.CommandType.StoredProcedure; //sätter att det ska vara en sp

            SqlParameter parRegNr = new SqlParameter                        //skapar in parametrar till sql kommandot med de mottagna värdena
            {
                ParameterName = "@RegNr",
                SqlDbType     = System.Data.SqlDbType.NVarChar,      //väljer variabel typ
                Value         = regNr,                               //sätter värdet på parametern
                Direction     = System.Data.ParameterDirection.Input //sätter vilket håll parametern ska gå
            };

            SqlParameter parForFree = new SqlParameter
            {
                ParameterName = "@ForFree",
                SqlDbType     = System.Data.SqlDbType.NVarChar,
                Value         = forFree,
                Direction     = System.Data.ParameterDirection.Input
            };

            cmd.Parameters.Add(parRegNr); //lägger till parametrarna
            cmd.Parameters.Add(parForFree);

            using (con)
            {
                try
                {
                    con.Open();
                    rdr          = cmd.ExecuteReader(); //utför sql kommandot
                    rowsAffected = rdr.RecordsAffected; //får tillbaka hur många rader som påverkades från databasen
                    while (rdr.Read())
                    {
                        info = "RegNr: " + rdr[0] + ", Parked At Time: " + rdr[1] + ", Retreived At Time: " + rdr[2] + ", Parkedtime: " + rdr[3] + "min , Parkingfee: " + rdr[4] + "kr"; //tar emot information  från databasen till en string
                    }
                }
                catch (Exception x) //fångar möjliga fel
                {
                    throw new Exception(x.Message);
                }
            }

            return(rowsAffected);
        }
        public string SearchParkingSlot(int parkingSlot) //metod för att hitta fordon i databasen med parkeringsruta
        {
            string result = "";

            SqlConnection con = new SqlConnection();
            SqlCommand    cmd = new SqlCommand();
            SqlDataReader rdr = null;

            con.ConnectionString = conStr;

            SqlParameter parParkingSlot = new SqlParameter //skapar in parametrar till sql kommandot med de mottagna värdena
            {
                ParameterName = "@ParkingSlot",
                SqlDbType     = System.Data.SqlDbType.NVarChar,      //väljer variabel typ
                Value         = parkingSlot,                         //sätter värdet på parametern
                Direction     = System.Data.ParameterDirection.Input //sätter vilket håll parametern ska gå
            };

            cmd.Parameters.Add(parParkingSlot); //lägger till parametrarna

            using (con)
            {
                con.Open();
                try
                {   //sql kommandot som ska hitta fordonet
                    cmd.CommandText =
                        "SELECT pv.ParkingSpaceID, v.RegNr, v.ParkedTime,v.CurrentParkedTime, v.ParkingFee " +
                        "FROM Vehicle v " +
                        "JOIN ParkedVehicles pv ON " +
                        "v.VehicleID = pv.VehicleID " +
                        "WHERE pv.ParkingSpaceID = @ParkingSlot";


                    cmd.Connection = con;
                    rdr            = cmd.ExecuteReader(); //utför sql kommandot

                    while (rdr.Read())
                    {
                        result += $"Parking Slot: {rdr[0]}, RegNr: {rdr[1]}, Parked at:{rdr[2]}, Parked Time: {rdr[3]}min, Parking Fee: {rdr[4]}kr\n"; //tar emot information  från databasen till en string
                    }
                }
                catch (Exception x) //fångar möjliga fel
                {
                    throw new Exception(x.Message);
                }
            }
            if (result.Length < 1) //om parkeringsplatsen var tom eller om den inte fanns
            {
                result = "The parking slot was empty or don't exist";
            }
            return(result);
        }
        public string ShowIncomeIntervall(string start, string end) //metod för att hämta inkomst för en specifik dag eller ett intervall
        {
            string result = "";

            SqlConnection con = new SqlConnection();
            SqlCommand    cmd = new SqlCommand();

            con.ConnectionString = conStr;

            SqlParameter parStartDate = new SqlParameter //skapar in parametrar till sql kommandot med de mottagna värdena
            {
                ParameterName = "@StartDate",
                SqlDbType     = System.Data.SqlDbType.Date,          //väljer variabel typ
                Value         = start,                               //sätter värdet på parametern
                Direction     = System.Data.ParameterDirection.Input //sätter vilket håll parametern ska gå
            };

            SqlParameter parEndDate = new SqlParameter
            {
                ParameterName = "@EndDate",
                SqlDbType     = System.Data.SqlDbType.Date,
                Value         = end,
                Direction     = System.Data.ParameterDirection.Input
            };



            cmd.Parameters.Add(parStartDate);                          //lägger till parametrarna
            cmd.Parameters.Add(parEndDate);
            cmd.CommandType = System.Data.CommandType.StoredProcedure; //väljer att det ska vara en sp

            SqlDataReader rdr = null;

            using (con)
            {
                con.Open();


                try
                {
                    cmd.CommandText = "sp_GetIncomeInterval"; //sql spn som ska hämta informationen

                    cmd.Connection = con;
                    rdr            = cmd.ExecuteReader(); //utför sql kommandot

                    while (rdr.Read())                    //tar emot information  från databasen till en string
                    {
                        DateTime temp;

                        if (rdr.FieldCount == 2)
                        {
                            temp    = (DateTime)rdr[0];
                            result += "Date: " + temp.ToString("yyyy:MM:dd") + ", Income: " + rdr[1] + "kr\n";
                        }
                        if (rdr.FieldCount == 3)
                        {
                            temp    = (DateTime)rdr[0];
                            result += "Date: " + temp.ToString("yyyy:MM:dd") + ", Income: " + rdr[1] + "kr, Average Income/Day: " + rdr[2] + "kr\n";
                        }
                    }
                }
                catch (Exception x) //fångar möjliga fel
                {
                    result = "";
                    throw new Exception(x.Message);
                }
            }


            return(result);
        }