using IRaCIS.Core.Domain.Models;
using MaxMind.GeoIP2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IRaCIS.Core.Application.Helper
{
    public static class IPCityHelper
    {

        public static string GetCityResponse(string ip)
        {
            var path = Path.Combine(AppContext.BaseDirectory, StaticData.Folder.Resources, "GeoLite2-City.mmdb");

            try
            {
                using (var reader = new DatabaseReader(path))
                {

                    var city = reader.City(ip);

                    //Console.WriteLine(city.Country.IsoCode); // 'US' 'CN'
                    //Console.WriteLine(city.Country.Name); // 'United States'  'China'
                    ////Console.WriteLine(city.Country.Names["zh-CN"]); // '美国'
                    //Console.WriteLine(city.MostSpecificSubdivision.Name); // 'Minnesota'  'Hubei'
                    //Console.WriteLine(city.City.Name); // 'Minneapolis'    'WUHan'

                    return $"{city.Country.Name} | {city.MostSpecificSubdivision.Name} | {city.City.Name}";

                }
            }
            catch (Exception ex)
            {

                return $"UN | UN | {ip}";
            }
        }
    }
}