using Microsoft.Graph.Models.ExternalConnectors; using Microsoft.Kiota.Abstractions; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using RestSharp; using Newtonsoft.Json; namespace Epi2Exchange2 { class EpiContacts { ConfigLoader Configuration = ConfigLoader.Instance; RestClient epirentserver; public EpiContacts() { epirentserver = new RestClient("http://" + Configuration.Epirent.Server + ":" + Configuration.Epirent.Port); } private String getContactJson() { RestRequest request = new RestRequest("/v1/contact/filter?ia=1&cl=" + Configuration.Epirent.Mandant, RestSharp.Method.Get); request.AddHeader("X-EPI-NO-SESSION", "True"); request.AddHeader("X-EPI-ACC-TOK", Configuration.Epirent.Token); request.RequestFormat = DataFormat.Json; return epirentserver.ExecuteGet(request).Content; } private String getContactDetailJson(long ContactPrimaryKey) { RestRequest request = new RestRequest("/v1/contact/"+ContactPrimaryKey+"/filter?ia=1&cl=" + Configuration.Epirent.Mandant, RestSharp.Method.Get); request.AddHeader("X-EPI-NO-SESSION", "True"); request.AddHeader("X-EPI-ACC-TOK", Configuration.Epirent.Token); request.RequestFormat = DataFormat.Json; return epirentserver.ExecuteGet(request).Content; } private String getContactPersonJson(long ContactPersonPrimaryKey) { RestRequest request = new RestRequest("/v1/cperson/" + ContactPersonPrimaryKey + "/filter?ia=1&cl=" + Configuration.Epirent.Mandant, RestSharp.Method.Get); request.AddHeader("X-EPI-NO-SESSION", "True"); request.AddHeader("X-EPI-ACC-TOK", Configuration.Epirent.Token); request.RequestFormat = DataFormat.Json; return epirentserver.ExecuteGet(request).Content; } public Model.ContactList getContactList() { Model.ContactList contactList = JsonConvert.DeserializeObject(getContactJson()); return contactList; } public Model.ContactList getContactList(DateTime FilterTime) { Model.ContactList contactList = JsonConvert.DeserializeObject(getContactJson()); contactList.Payload.RemoveAll(p => p.getDateTimeChanged() < FilterTime); return contactList; } public Model.ContactDetail GetContactDetail(long primaryKey) { Model.ContactDetail contactDetail = JsonConvert.DeserializeObject(getContactDetailJson(primaryKey)); return contactDetail; } public Model.ContactPersonDetail GetContactPersonDetail(long primaryKey) { Model.ContactPersonDetail cPersonDetail = JsonConvert.DeserializeObject(getContactPersonJson(primaryKey)); return cPersonDetail; } } }