Example #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            SecilmemisDersModel ders = (SecilmemisDersModel)secilmemisDerslerListBox.SelectedItem;

            if (ders != null)
            {
                if (ders.dersBilgisi.connected.Count > 0)
                {
                    foreach (DersModeli ders1 in ders.dersBilgisi.connected)
                    {
                        secilmemisDersler.Remove(secilmemisDersler.Where(x => x.dersBilgisi.connected.Contains(ders.dersBilgisi)).First());
                        program.dersler.Remove(ders1);
                    }
                }
            }
            else
            {
                MessageBox.Show("Olmayan dersi silmeye calisiyorsunuz");
                return;
            }



            SecilmemisDersModel secilmis = (SecilmemisDersModel)secilmemisDerslerListBox.SelectedItem;
            int index;

            foreach (DersModeli birlesikDers in secilmis.dersBilgisi.connected)
            {
                foreach (SecilmemisDersModel sabit in sabitders)
                {
                    if (sabit.dersBilgisi == birlesikDers)
                    {
                        index = sabitders.IndexOf(sabit);
                        sabitders.Remove(sabit);
                        butunZamanlar.RemoveAt(index);
                        break;
                    }
                }
            }

            if (sabitders.Any(x => x == secilmis))
            {
                index = sabitders.IndexOf(secilmis);
                sabitders.Remove(secilmis);
                butunZamanlar.RemoveAt(index);
            }



            temizle();

            secilmemisDersler.Remove(ders);
            program.dersler.Remove(ders.dersBilgisi);



            ListeleriYenile();
        }
Example #2
0
        private void ekleButton_Click(object sender, EventArgs e)
        {
            SecilmemisDersModel secilenDers    = (SecilmemisDersModel)DersSecDropDown.SelectedItem;
            SectionModel        secilenSection = (SectionModel)sectionSecDropDown.SelectedItem;


            Ekle(secilenDers, secilenSection);



            ListeleriYenile();
        }
Example #3
0
 public void DersBirlestir(List <DersModeli> model)
 {
     foreach (DersModeli ders in model)
     {
         if (!secilmemisDersler.Any(x => x.dersBilgisi.TamDersAdi == ders.TamDersAdi))
         {
             SecilmemisDersModel secilmemis = new SecilmemisDersModel();
             secilmemis.dersBilgisi = ders;
             secilmemisDersler.Add(secilmemis);
         }
     }
     ListeleriYenile();
 }
Example #4
0
        private void Ekle(SecilmemisDersModel secilenDers, SectionModel secilenSection)
        {
            if (secilenDers != null)
            {
                secilenDers.dersDurumu = false;

                tableLayoutPanel1.SuspendLayout();

                List <ZamanModel> zamanlar = new List <ZamanModel>();

                foreach (ZamanModel saat in secilenSection.SectionSaatleri)
                {
                    zamanlar.Add(saat);

                    for (int i = 0; i < saat.süre; i++)
                    {
                        tableLayoutPanel1.Controls.Add(new Label {
                            Text = $"{secilenSection.SectionAdı}", Font = new Font("Microsoft Sans Serif", 12), Size = tableLayoutPanel1.Size, TextAlign = ContentAlignment.MiddleCenter
                        }, saat.gün, saat.baslangicsaati + i);
                    }
                }

                butunZamanlar.Add(zamanlar);
                sabitders.Add(secilenDers);

                if (secilmemisDersler.Where(x => x.dersDurumu && x.imkanli).ToList().Count < 1)
                {
                    kaldır();
                }



                tableLayoutPanel1.ResumeLayout();



                BilgiAlmaLogic.TamKontrol(secilmemisDersler.Where(x => x.dersDurumu == true).ToList(), butunZamanlar.SelectMany(x => x).ToList());
            }
        }
Example #5
0
        public static bool ProgramYapma(BindingList <SecilmemisDersModel> secilmemisDersler, ref List <SectionModel> secilenSectionlar, ref List <SecilmemisDersModel> NotSelected, ref List <SecilmemisDersModel> Selected, ref List <List <ZamanModel> > AllTime)
        {
            if (NotSelected.Count < 1)
            {
                NotSelected = secilmemisDersler.Where(x => x.dersDurumu).OrderByDescending(x => x.dersBilgisi.SectionSayisi).ToList();
            }


            while (NotSelected.Count > 0)
            {
                SecilmemisDersModel SecilenDers = NotSelected.Last();

                List <SectionModel> possibleList = SecilenDers.dersBilgisi.Sectionlar.Where(x => x.imkanli).ToList();



                while (SecilenDers.order > possibleList.Count - 1)
                {
                    if (secilenSectionlar.Count == 0)
                    {
                        return(false);
                    }

                    else
                    {
                        AllTime.RemoveAt(AllTime.Count - 1);
                        secilenSectionlar.RemoveAt(secilenSectionlar.Count - 1);
                        foreach (SecilmemisDersModel ders in NotSelected)
                        {
                            foreach (SectionModel section in ders.dersBilgisi.Sectionlar)
                            {
                                section.imkanli = true;
                            }
                        }
                        NotSelected.Add(Selected[Selected.Count - 1]);

                        Selected.Remove(Selected[Selected.Count - 1]);
                    }

                    SecilenDers.order = 0;

                    SecilenDers = NotSelected.Last();

                    possibleList = SecilenDers.dersBilgisi.Sectionlar.Where(x => x.imkanli).ToList();
                }



                while (SecilenDers.order < possibleList.Count)
                {
                    List <ZamanModel> zamanlar       = new List <ZamanModel>();
                    SectionModel      secilenSection = possibleList[SecilenDers.order];

                    foreach (ZamanModel saat in secilenSection.SectionSaatleri)
                    {
                        zamanlar.Add(saat);
                    }

                    AllTime.Add(zamanlar);

                    NotSelected.Remove(SecilenDers);

                    SecilenDers.order += 1;



                    if (!BilgiAlmaLogic.YarımKarsilastir(AllTime.SelectMany(x => x).ToList(), NotSelected))
                    {
                        AllTime.Remove(zamanlar);
                        NotSelected.Add(SecilenDers);


                        BilgiAlmaLogic.YarımKarsilastir(AllTime.SelectMany(x => x).ToList(), NotSelected);
                    }
                    else
                    {
                        secilenSectionlar.Add(secilenSection);
                        Selected.Add(SecilenDers);


                        if (NotSelected.Count < 1)
                        {
                            AllTime.Remove(zamanlar);
                            NotSelected.Add(SecilenDers);
                            Selected.Remove(SecilenDers);

                            return(true);
                        }

                        break;
                    }
                }
            }
            return(true);
        }