api biluppgifter.se

Created Diff never expires
27 removals
147 lines
21 additions
157 lines
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Linq;
using System;
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel;
using System.Data;
using System.Data;
using System.Drawing;
using System.Drawing;
using System.IO;
using System.IO;
using System.Linq;
using System.Linq;
using System.Net;
using System.Net;
using System.Text;
using System.Text;
using System.Text.RegularExpressions;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms;


namespace API_GUI_Car
namespace API_GUI_Car
{
{
public partial class Form1 : Form
public partial class Form1 : Form
{
{


public Form1()
public Form1()
{
{
InitializeComponent();
InitializeComponent();


// Skapar labels som skall läggas i tabellen
// Skapar labels som skall läggas i tabellen
Label l1 = new Label();
Label l1 = new Label();
l1.Text = "RegNr";
l1.Text = "RegNr";
Label l2 = new Label();
Label l2 = new Label();
l2.Text = "Typ";
l2.Text = "Typ";
Label l3 = new Label();
Label l3 = new Label();
l3.Text = "Märke";
l3.Text = "Märke";
Label l4 = new Label();
Label l4 = new Label();
l4.Text = "Modell";
l4.Text = "Modell";
Label l5 = new Label();
Label l5 = new Label();
l5.Text = "Årsmodell";
l5.Text = "Årsmodell";
Label l6 = new Label();
Label l6 = new Label();
l6.Text = "Färg";
l6.Text = "Färg";


// Fetmarkera
// Fetmarkera
l1.Font = new Font(l1.Font, FontStyle.Bold);
l1.Font = new Font(l1.Font, FontStyle.Bold);
l2.Font = new Font(l2.Font, FontStyle.Bold);
l2.Font = new Font(l2.Font, FontStyle.Bold);
l3.Font = new Font(l3.Font, FontStyle.Bold);
l3.Font = new Font(l3.Font, FontStyle.Bold);
l4.Font = new Font(l4.Font, FontStyle.Bold);
l4.Font = new Font(l4.Font, FontStyle.Bold);
l5.Font = new Font(l5.Font, FontStyle.Bold);
l5.Font = new Font(l5.Font, FontStyle.Bold);
l6.Font = new Font(l6.Font, FontStyle.Bold);
l6.Font = new Font(l6.Font, FontStyle.Bold);


// Lägg in labels i tabellen
// Lägg in labels i tabellen
int row = 0;
int row = 0;
tlpCar.Controls.Add(l1, 0, row++);
tlpCar.Controls.Add(l1, 0, row++);
tlpCar.Controls.Add(l2, 0, row++);
tlpCar.Controls.Add(l2, 0, row++);
tlpCar.Controls.Add(l3, 0, row++);
tlpCar.Controls.Add(l3, 0, row++);
tlpCar.Controls.Add(l4, 0, row++);
tlpCar.Controls.Add(l4, 0, row++);
tlpCar.Controls.Add(l5, 0, row++);
tlpCar.Controls.Add(l5, 0, row++);
tlpCar.Controls.Add(l6, 0, row++);
tlpCar.Controls.Add(l6, 0, row++);




}
}


private void btnSearch_Click(object sender, EventArgs e)
private void btnSearch_Click(object sender, EventArgs e)
{
{
// Om regNr är inmatat
// Om regNr är inmatat
if (txbRegNr.Text.Length > 0)
if (txbRegNr.Text.Length > 0)
{
{
// Hämta regNr
// Hämta regNr
string regNr = txbRegNr.Text.ToUpper();
string regNr = txbRegNr.Text.ToUpper();


// Nollställ textboxen
// Nollställ textboxen
txbRegNr.Text = "";
txbRegNr.Text = "";


// Anropa metoden printData
// Anropa metoden printData
printData(regNr);
printData(regNr);
} else
} else
{
{
MessageBox.Show("Du måste ange ett registreringsnummer.", "Felaktig inmatning", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show("Du måste ange ett registreringsnummer.", "Felaktig inmatning", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}


}
}


private void printData(string regNr)
private void printData(string regNr)
{
{
// Variabler
// Variabler
string token = "hemlig";
string token = "hemlig";
string call = String.Format($"https://api.biluppgifter.se/api/v1/vehicle/regno/{regNr}?api_token={token}");
string call = $"https://data.biluppgifter.se/api/v1/lookup/vehicle/regno/{regNr}";


try
try
{
{
// Skapar ett objekt med API-aropet till HttpWebRequest
// Skapar ett objekt med API-anropet till HttpWebRequest
WebRequest request = HttpWebRequest.Create(call);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(call);
request.Method = "GET";
request.Headers["Authorization"] = $"Bearer {token}";


// Skapar ett svarsobjekt
// Skapar ett svarsobjekt
WebResponse response = request.GetResponse();
WebResponse response = request.GetResponse();


// Läser av svaret till ett streamreaderobjekt
// Läser av svaret till ett streamreaderobjekt
StreamReader reader = new StreamReader(response.GetResponseStream());
StreamReader reader = new StreamReader(response.GetResponseStream());


// Läser in innehållet till en JSON-sträng
// Läser in innehållet till en JSON-sträng
String bil_JSON = reader.ReadToEnd();
String bil_JSON = reader.ReadToEnd();


// Skapar ett JObject.
// Skapar ett JObject.
JObject jo = JObject.Parse(bil_JSON);
JObject jo = JObject.Parse(bil_JSON);


// Skriver ut hela objektet
// Skriver ut hela objektet
txtJSON.Text = jo.ToString();
txtJSON.Text = jo.ToString();


// Hämtar data från JSON-objektet och formaterar det till en sträng, om den är tom så sätts den till en tom sträng
string type = jo.SelectToken("vehicle.type")?.ToString() ?? "";
string make = jo.SelectToken("vehicle.make")?.ToString() ?? "";
string model = jo.SelectToken("vehicle.model")?.ToString() ?? "";
string vehicleYear = jo.SelectToken("vehicle.vehicle_year")?.ToString() ?? "";
string color = jo.SelectToken("vehicle.color")?.ToString() ?? "";

// Justerad
String car = String.Format($"{"Registreringnr":20} {regNr:10}");
String car = String.Format($"{"Registreringnr":20} {regNr:10}");
car += String.Format($"{"\nTyp":20} {jo["data"]["type"]}");
car += String.Format($"{"\nTyp":20} {type}");
car += String.Format($"{"\nMärke":20} {jo["data"]["basic"]["data"]["make"]}");
car += String.Format($"{"\nMärke":20} {make}");
car += String.Format($"{"\nModell":20} {jo["data"]["model"]["data"]["model"]}");
car += String.Format($"{"\nModell":20} {model}");
car += String.Format($"{"\nÅrsmodell":20} {jo["data"]["basic"]["data"]["vehicle_year"]}");
car += String.Format($"{"\nÅrsmodell":20} {vehicleYear}");
car += String.Format($"{"\nFärg":20} {jo["data"]["basic"]["data"]["color"]}");
car += String.Format($"{"\nFärg":20} {color}");


txtCarInfo.Text = car;
txtCarInfo.Text = car;


// Koppla kolumn 2
// Koppla kolumn 2
// Skapar labels som skall läggas i tabellen
// Skapar labels som skall läggas i tabellen
Label l1 = new Label();
Label l1 = new Label();
Label l2 = new Label();
Label l2 = new Label();
Label l3 = new Label();
Label l3 = new Label();
Label l4 = new Label();
Label l4 = new Label();
Label l5 = new Label();
Label l5 = new Label();
Label l6 = new Label();
Label l6 = new Label();
Label l7 = new Label();
Label l7 = new Label();


l1.Text = regNr;
l1.Text = regNr;
l2.Text = String.Format($"{jo["data"]["type"]}");
l2.Text = type;
l3.Text = String.Format($"{jo["data"]["basic"]["data"]["make"]}");
l3.Text = make;
l4.Text = String.Format($"{jo["data"]["model"]["data"]["model"]}");
l4.Text = model;
l5.Text = String.Format($"{jo["data"]["basic"]["data"]["vehicle_year"]}");
l5.Text = vehicleYear;
l6.Text = String.Format($"{jo["data"]["basic"]["data"]["color"]}");
l6.Text = color;
l7.Text = String.Format("Test");
l7.Text = "Test";


int row = 0;
int row = 0;
tlpCar.Controls.Add(l1, 1, row++);
tlpCar.Controls.Add(l1, 1, row++);
tlpCar.Controls.Add(l2, 1, row++);
tlpCar.Controls.Add(l2, 1, row++);
tlpCar.Controls.Add(l3, 1, row++);
tlpCar.Controls.Add(l3, 1, row++);
tlpCar.Controls.Add(l4, 1, row++);
tlpCar.Controls.Add(l4, 1, row++);
tlpCar.Controls.Add(l5, 1, row++);
tlpCar.Controls.Add(l5, 1, row++);
tlpCar.Controls.Add(l6, 1, row++);
tlpCar.Controls.Add(l6, 1, row++);
tlpCar.Controls.Add(l7, 1, row++);
tlpCar.Controls.Add(l7, 1, row++);
}
}
catch (Exception e)
catch (Exception e)
{
{
MessageBox.Show($"Din sökning på registreringsnummer {regNr} gav ingen träff.\nMeddelande: {e.Message}", "Ingen träff i databasen", MessageBoxButtons.OK, MessageBoxIcon.Information);
MessageBox.Show($"Din sökning på registreringsnummer {regNr} gav ingen träff.\nMeddelande: {e.Message}", "Ingen träff i databasen", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
}
}
}
}