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(); }
private void ekleButton_Click(object sender, EventArgs e) { SecilmemisDersModel secilenDers = (SecilmemisDersModel)DersSecDropDown.SelectedItem; SectionModel secilenSection = (SectionModel)sectionSecDropDown.SelectedItem; Ekle(secilenDers, secilenSection); ListeleriYenile(); }
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(); }
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()); } }
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); }