Clear        


                
                    using _28_1_DemoFilmlerClassLibrary.Data;
using _28_1_DemoFilmlerClassLibrary.Entities;
using _28_1_DemoFilmlerClassLibrary.Repositories;
using System.Globalization;

namespace _28_3_DemoFilmlerWindowsFormsApp
{
    public partial class FilmEkleForm : Form
    {
        FilmRepo filmRepo = new FilmRepo();
        YonetmenRepo yonetmenRepo = new YonetmenRepo();
        TurRepo turRepo = new TurRepo();

        public FilmEkleForm()
        {
            InitializeComponent();
        }

        private void FilmEkleForm_Load(object sender, EventArgs e)
        {
            nudYapimYili.Value = DateTime.Now.Year;
            dtpGosterimTarihi.Value = DateTime.Today;
            lMesaj.Text = "";
            FillYonetmenler();
            FillTurler();
        }

        void FillYonetmenler()
        {
            List<Yonetmen> yonetmenler = yonetmenRepo.YonetmenleriGetir().ToList();
			yonetmenler.Insert(0, new Yonetmen()
			{
				Id = -1,
				Adi = "-- Yönetmen Seçiniz --"
			});
			ddlYonetmen.DataSource = yonetmenler;
            ddlYonetmen.ValueMember = "Id";
            ddlYonetmen.DisplayMember = "AdiSoyadi";
        }

        void FillTurler()
        {
            List<Tur> turler = turRepo.TurleriGetir();
            lbTurler.DataSource = turler;
            lbTurler.ValueMember = "Id";
            lbTurler.DisplayMember = "Adi";
            lbTurler.ClearSelected();
        }

        private void bEkle_Click(object sender, EventArgs e)
        {
            Insert();
        }

        void Insert()
        {
            try
            {
                string adi = tbAdi.Text;
                if (string.IsNullOrWhiteSpace(adi))
                {
                    lMesaj.Text = "Ad girilmelidir!";
                    return;
                }

                short yapimYili = Convert.ToInt16(nudYapimYili.Value);

                decimal gisesi;
                if (!decimal.TryParse(tbGisesi.Text, NumberStyles.Any, new CultureInfo("tr-TR"), out gisesi))
                {
                    lMesaj.Text = "Gişe sayısal olmalıdır!";
                    return;
                }

                int yonetmenId = Convert.ToInt32(ddlYonetmen.SelectedValue);
                if (yonetmenId == -1)
                {
                    lMesaj.Text = "Yönetmen seçilmelidir!";
                    return;
                }

                if (lbTurler.SelectedItems.Count == 0)
                {
                    lMesaj.Text = "En az bir tür seçilmelidir!";
                    return;
                }
                List<int> turIdleri = new List<int>();
                Tur seciliTur;
                foreach (var selectedItem in lbTurler.SelectedItems)
                {
                    seciliTur = selectedItem as Tur;
                    turIdleri.Add(seciliTur.Id);
                }

                Film film = new Film()
                {
                    Adi = adi,
                    YapimYili = yapimYili,
                    Gisesi = gisesi,
                    Yonetmeni = yonetmenRepo.KayitGetir(yonetmenId) as Yonetmen,
                    Turleri = turRepo.TurleriGetir(turIdleri),
                    GosterimTarihi = dtpGosterimTarihi.Value,
                    Platform = rbSinema.Checked ? Platformlar.Sinema : rbNetflix.Checked ? Platformlar.Netflix : Platformlar.Amazon,
                    YerliMi = cbYerli.Checked
                };

                lMesaj.Text = filmRepo.FilmEkle(film);
            }
            catch
            {
                lMesaj.Text = Veriler.HataMesaji;
            }
        }

        private void bKapat_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}