using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using MercatorExtensions;

// <CompileWithRoslyn />

namespace TestTunnel
{
    public static class Class1
    {
        public static MercatorPeppol.DirectoryParticipantResponse ParticipantInfo(string peppolId, out string error)
        {
            if (!peppolId.Contains(":"))
            {
                error = "Invalid peppolId!";
                return null;
            }
            string url = "https://directory.peppol.eu/search/1.0/json?participant=iso6523-actorid-upis::" + peppolId;

#if (MERCATOR_CORE)
            MercatorHttpClient.HttpClient client = MercatorHttpClient.HttpClient.Create(url);
#else
            HttpWebRequest client = (HttpWebRequest)WebRequest.Create(url);
#endif
            client.Timeout = 2000;
            return client.GetData<MercatorPeppol.DirectoryParticipantResponse>(out error);
        }

        public async static Task<(MercatorPeppol.DirectoryParticipantResponse participantResponse, string error)> ParticipantInfoAsync(string peppolId)
        {
            if (!peppolId.Contains(":"))
                return (null, "Invalid peppolId!");

            string url = "https://directory.peppol.eu/search/1.0/json?participant=iso6523-actorid-upis::" + peppolId;

#if (MERCATOR_CORE)
            MercatorHttpClient.HttpClient client = MercatorHttpClient.HttpClient.Create(url);
#else
            HttpWebRequest client = (HttpWebRequest)WebRequest.Create(url);
#endif
            client.Timeout = 2000;
            return await client.GetDataAsync<MercatorPeppol.DirectoryParticipantResponse>();
        }
    }
}