using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;

namespace ApiTestUygulamasi
{
    public class Utilities
    {
        public static string BuildUrlParametersString(Dictionary<string, string> parameters)
        {
            UriBuilder uriBuilder = new UriBuilder();
            var query = HttpUtility.ParseQueryString(uriBuilder.Query);
            foreach (var urlParameter in parameters)
            {
                query[urlParameter.Key] = urlParameter.Value;
            }
            uriBuilder.Query = query.ToString();
            return uriBuilder.Query;
        }
    }
    public class ReceteListe
    {
        public List<ReceteObject> receteListe = new List<ReceteObject>();
    }

    public class ReceteListeParam
    {
        public string kullaniciAdi { get; set; }
        public string sifre { get; set; }
        public string tesisKodu { get; set; }
        public string baslangic { get; set; }
        public string bitis { get; set; }
    }

    public class ReceteObject
    {
        public string Id;
        public string Kod;
        public string MedulaKod;
        public DateTime Tarih;
        public string DoktorTc;
        public string HastaTc;
        public string ReceteXml;
        public bool Silindi;
        public DateTime? SilinmeTarih;
    }
    public class ReceteBilgi
    {
        public string Id { get; set; }
        public string No { get; set; }
        public DateTime Tarih { get; set; }
        public string HastaTcKimlikNo { get; set; }
        public string DoktorTcKimlikNo { get; set; }
        public string TesisNo { get; set; }
        public string ProvizyonNo { get; set; }
        public List<string> TaniKodlari { get; set; }
        public ReceteTuru ReceteTuru { get; set; }
        public List<Ilac> Ilaclar { get; set; }
        public List<MajistralIlac> MajistralIlaclar { get; set; }
    }

    public class Ilac
    {
        public string GTIN { get; set; }
        public int Doz1 { get; set; }
        public int Doz2 { get; set; }
        public int Periyod { get; set; }
        public PeriyodTuru PeriyodTuru { get; set; }
        public KullanimTuru Kullanim { get; set; }
        public int Kutu { get; set; }
        public string Aciklama { get; set; }
    }

    public class MajistralIlac
    {
        public List<MajistralMadde> MajistralMaddeler { get; set; }
        public FarmasotikFormTuru FarmasotikForm { get; set; }
        public int TedaviSuresi { get; set; }
        public int Doz1 { get; set; }
        public int Doz2 { get; set; }
    }

    public class MajistralMadde
    {
        public string Adi { get; set; }
        public decimal DozMiktari { get; set; }
        public BirimTuru BirimTuru { get; set; }
    }

    public class ReceteSonuc
    {
        public string ReceteNo { get; set; }
        public string SonucKodu { get; set; }
        public string SonucAciklama { get; set; }
    }

    public class ReceteToken
    {
        public string KullaniciAdi { get; set; }
        public string Sifre { get; set; }
        public string TesisKodu { get; set; }
        public string DoktorTc { get; set; }
    }

    public enum ReceteTuru
    {
        Dummy = 0,
        Ayaktan = 1,
        Yatan = 2,
        Raporlu = 3
    }

    public enum PeriyodTuru
    {
        Dummy = 0,
        Gun = 1,
        Hafta = 2,
        Ay = 3,
        Yil = 4
    }

    public enum KullanimTuru
    {
        Dummy = 0,
        Agizdan = 1,
        CiltUzerine = 2,
        SolunumYolu = 3,
        AgizIci = 4,
        BurunIci = 5,
        DilAlti = 6,
        DıisKulakYolu = 7,
        Kolon = 8,
        IntraMuskuler = 9,
        GozUzerine = 10,
        Rektal = 11,
        IntraVajinal = 12,
        IntraDermal = 13,
        Subkutan = 14,
        IntraVenoz = 15,
        KalpIci = 16,
        Inhalasyon = 17,
        TransDermal = 18,
        Belirtilmemis = 99
    }

    public enum BirimTuru
    {
        Dummy = 0,
        Miligram = 1,
        Gram = 2
    }

    public enum FarmasotikFormTuru
    {
        Dummy = 0,
        Kase = 1,
        Sase = 2
    }
}
