﻿using System;
using System.Collections.Generic;
using Npgsql;  

namespace NobelVmesnik
{
    static class IzvajalnikSql
    {
        public static List<string> SqlGetDobitnik(string danoLeto, string danoPodrocje)
        {
            String sqlUkaz;
            if(danoLeto.Equals(""))
            {
                sqlUkaz = $"SELECT * FROM Nobel WHERE subject LIKE '{danoPodrocje}'";
            }
            else
            {
                if(danoPodrocje.Equals(""))
                {
                    sqlUkaz = $"SELECT * FROM Nobel WHERE yr = {danoLeto}";
                }
                else
                {
                    sqlUkaz = $"SELECT * FROM Nobel WHERE yr = {danoLeto} AND subject = '{danoPodrocje}'";
                }
            }
            List<string> podatki = new List<string>();
            String povezovalniNiz = "Server= baza.fmf.uni-lj.si; User Id= student11; Password= student; Database= nobel2012;";
            NpgsqlConnection povezava = new NpgsqlConnection(povezovalniNiz);
            NpgsqlCommand ukaz = new NpgsqlCommand(sqlUkaz, povezava);

            povezava.Open();
            NpgsqlDataReader izvedba = ukaz.ExecuteReader();
            try
            {
                while(izvedba.Read())
                {
                    string področje = izvedba["subject"].ToString();
                    string leto = izvedba["yr"].ToString();
                    string dobitnik = izvedba.GetString(2);
                    string[] podatek = { področje, leto, dobitnik };
                    Console.WriteLine("{" + $"{področje},{dobitnik},{leto}" + "}");
                    podatki.Add(dobitnik);
                }
            }
            finally
            {
                if(izvedba != null)
                {
                    izvedba.Close();
                }

                if(povezava != null)
                {
                    povezava.Close();
                }
            }
            return podatki;
        }
        public static List<string> GetLeta()
        {
            List<string> podatki = new List<string>();
            String povezovalniNiz = "Server= baza.fmf.uni-lj.si; User Id= student11; Password= student; Database= nobel2012;";
            String sqlUkaz = "SELECT DISTINCT yr FROM Nobel ORDER BY yr";
            NpgsqlConnection povezava = new NpgsqlConnection(povezovalniNiz);
            NpgsqlCommand ukaz = new NpgsqlCommand(sqlUkaz, povezava);

            povezava.Open();
            NpgsqlDataReader izvedba = ukaz.ExecuteReader();
            while(izvedba.Read())
            {
                string leto = izvedba["yr"].ToString();
                podatki.Add(leto);
            }
            izvedba.Close();
            povezava.Close();
            return podatki;
        }
        public static List<string> GetPodrocje()
        {
            List<string> podatki = new List<string>();
            String povezovalniNiz = "Server= baza.fmf.uni-lj.si; User Id= student11; Password= student; Database= nobel2012;";
            String sqlUkaz = "SELECT DISTINCT subject FROM Nobel";
            NpgsqlConnection povezava = new NpgsqlConnection(povezovalniNiz);
            NpgsqlCommand ukaz = new NpgsqlCommand(sqlUkaz, povezava);

            povezava.Open();
            NpgsqlDataReader izvedba = ukaz.ExecuteReader();
            while(izvedba.Read())
            {
                string podrocje = izvedba["subject"].ToString();
                podatki.Add(podrocje);
            }
            izvedba.Close();
            povezava.Close();
            return podatki;
        }
    }
}
