using System; using System.Collections.Generic; using System.Data; using Newtonsoft.Json; using RestSharp; namespace Kreta.Client.LEP { public class LepClient { private readonly string baseUrl; private readonly string apiKey; public LepClient(string baseUrl, string apiKey) { this.baseUrl = baseUrl; this.apiKey = apiKey; } private IRestResponse Http(Method method, string relativeUri, Dictionary parameters = null, Object body = null) { var restRequest = new RestRequest(relativeUri, method); restRequest.AddHeader("ApiKey", apiKey); if (parameters != null && parameters.Count > 0) { foreach (var parameter in parameters) { restRequest.AddParameter(parameter.Key, parameter.Value); } } if (method == Method.POST && body != null) { restRequest.AddJsonBody(body); } var result = new RestClient(string.Format(baseUrl)).Execute(restRequest); return result; } private TResponse Http(Method method, string relativeUri, Dictionary parameters = null, Object body = null) { var result = Http(method, relativeUri, parameters, body); var response = JsonConvert.DeserializeObject(result.Content); return response; } private TResponse GetAsync(string relativeUri, Dictionary parameters = null) { return Http(Method.GET, relativeUri, parameters); } private TResponse PostAsync(string relativeUri, Dictionary parameters = null, Object body = null) { return Http(Method.POST, relativeUri, parameters, body); } private void Post(string relativeUri, Dictionary parameters = null, Object body = null) { Http(Method.POST, relativeUri, parameters, body); } public JelentkezesResponseModel PostEloadasokTanuloszamossag(string intezmenyAzonosito, int eloadasId, int tanuloLetszam, int kiseroLetszam) { var body = new { IntezmenyAzonosito = intezmenyAzonosito, EloadasIdopont = eloadasId, TanulokSzama = tanuloLetszam, KiserokSzama = kiseroLetszam }; var response = PostAsync("api/lep2/eloadasidopontresztvevointezmeny/external/jelentkezes", null, body); return response; } public JelenletResponseModel PostEloadasokTanulojelenlet(string intezmenyAzonosito, int eloadasId, DataSet ds) { var body = new { IntezmenyAzonosito = intezmenyAzonosito, EloadasIdopont = eloadasId, TanuloLista = new List() }; foreach (DataRow row in ds.Tables[0].Rows) { body.TanuloLista.Add(new JelenletRequestPartialModel { TanuloId = row.Field("TanuloId"), EvfolyamId = row.Field("EvfolyamId"), EvfolyamNev = row.Field("EvfolyamNev"), OsztalyId = row.Field("OsztalyId"), OsztalyNev = row.Field("OsztalyNev"), Megjelent = row.Field("Megjelent") == "T", Torolt = row.Field("Torolt") == "T" }); } var response = PostAsync("api/lep2/eloadasidopontresztvevointezmeny/external/jelenlet", null, body); return response; } public List GetEloadasok(string intezmenyAzonosito, List evfolyamList) { var body = new { IntezmenyAzonosito = intezmenyAzonosito, EvfolyamAzonositok = evfolyamList }; var response = PostAsync>("api/lep2/eloadasidopontresztvevointezmeny/external/get", null, body); return response; } } }