Uses Binary Reader to get bytes when HomeController.cs is fired then saves data as string onto a session.
The Database.cs contains 3 structs Header, Ranges and Location used to map fields of binary data during deserialization. Also consists of functions to store data into session memory and various utilities to convert Ip to integer and array to json format.
The StructTools.cs contains deserialization function.
IpController.cs Fetches data from session uses struct to deserialize the data and extract field names and values. The fields are used to get coordinates using Ip argument.
CityContoller.cs Also to get Locations by city name when is routed.