using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PerfektiveEntegrasyonWindowsForms.PerfektiveWebServis;
using System.ServiceModel;

namespace PerfektiveEntegrasyonWindowsForms
{
    class WebServisSiniflari
    {

        public String EndPoint;
        public String UserName;
        public String PassWord;

        public WebServisSiniflari(String EndPoint, String UserName, String PassWord)
        {
            this.EndPoint = EndPoint;
            this.UserName = UserName;
            this.PassWord = PassWord;
        }
      
        public EntegrasyonResponseType sonuclar()
        {
            TopluKayitType topluKayitType = new TopluKayitType();
            CalisanType calisanType = Calisan();
            CalisanType[] calisanlar = new CalisanType[1];
            calisanlar[0] = calisanType;
            topluKayitType.Calisanlar = calisanlar;

            GuvenlikBilgileriType guvenlikBilgileriType = new GuvenlikBilgileriType();
            guvenlikBilgileriType.KullaniciAdi = UserName;
            guvenlikBilgileriType.Sifre = PassWord;

            topluKayitType.GuvenlikBilgileri = guvenlikBilgileriType;

            SubeType sube = Sube();
            SubeType[] subeler = new SubeType[1];
            subeler[0] = sube;
            topluKayitType.Subeler = subeler;

            TumEntegrasyonTekCagridaRequest tumEntegrasyonTekCagridaRequest = new TumEntegrasyonTekCagridaRequest();
            tumEntegrasyonTekCagridaRequest.TumEntegrasyonTekCagrida = topluKayitType;

            perfektiveentegrasyonClient PerfektiveentegrasyonClient = new perfektiveentegrasyonClient();
            Uri baseAddress = new Uri(EndPoint);
            EndpointAddress endpointAddress = new EndpointAddress(baseAddress);
            PerfektiveentegrasyonClient.Endpoint.Address = endpointAddress;

            EntegrasyonResponseType entegrasyonResponseType = PerfektiveentegrasyonClient.TumEntegrasyonTekCagrida(topluKayitType);
            return entegrasyonResponseType;
        }


        public static SubeType Sube()
        {
            SubeType sube = new SubeType();
            sube.subeAdi = "ITU Magnet";
            sube.subeKodu = "1234";
            sube.sgkSicilNo = "15221010110146860240347";
            sube.adres = "Maslak";
            sube.ilPlakaKodu = 34;
            sube.ilPlakaKoduSpecified = true;
            sube.naceKodu = "43.21.03";
            sube.vkn = "1231312312312";
            sube.ilceSgkKodu = "324234";
            return sube;
        }

        public static CalisanType Calisan()
        {
            CalisanType calisanType = new CalisanType();
            calisanType.ad = "Ahmet";
            calisanType.soyad = "Mehmet";
            calisanType.tckimlik = "32758218130";
            calisanType.sicilNo = "123456";
            DateTime dogumTarihi = new DateTime(1976,5,3);
            calisanType.dogumTarihi = dogumTarihi;
            calisanType.cinsiyet = cinsiyetType.E;
            calisanType.kanGrubu = kanGrubuType.APOS;
            calisanType.egitimDurumu = egitimDurumuType.LISANS;
            calisanType.mezunOlduguOkul = "İstanbul Teknik Üniversitesi";
            calisanType.mezunOlduguBolum = "Bilgisayar Mühendisliği";
            calisanType.cocukSayisi = "1";
            calisanType.medeniHal = medeniHalType.EVLI;
            calisanType.adres = "Etiler";
            calisanType.cepTelefonu = "5053471587";
            calisanType.eposta = "ahmetmehmet@perfektive.com";
            calisanType.gorev = "Yazılım";
            calisanType.subeKodu = "1234";
            calisanType.subeSgkSicilNo = "15221010110146860240347";
            calisanType.iseGirisTarihi = new DateTime(1990, 1, 1);
            calisanType.dogumYeri = "Bursa";
            calisanType.egitimDurumuSpecified = true;
            calisanType.engelli = true;
            calisanType.memurIsci = memurIsciType.ISCI;
            calisanType.uyruk = "TC";
            calisanType.geceVardiyasi = true;
            calisanType.departman = "Yazılım";

            return calisanType;
        }

    }
}
