static void Main(string[] args) { using (var db = new DBContext()) { var seed = new InitialSeeder(db); seed.Seed(); Service.Initialize(db); while (true) { var input = Console.ReadLine().Split(); switch (input[0]) { case "add": Service.Add(input[1]); break; case "edit": Service.Edit(input[1]); break; case "afisfac": Service.Show(); break; case "del": Service.Delete(); break; case "afisnum": Service.ShowSubjects(); break; case "afismin": Service.GetMin(); break; case "afisnone": Service.ShowIfNone(); break; case "stat": Service.ShowStat(); break; default: return; } } } }
static void Main(string[] args) { DBDBContext context = new DBDBContext(); if (false) { context.Cursuri.RemoveRange(context.Cursuri); context.Studenti.RemoveRange(context.Studenti); context.Facultati.RemoveRange(context.Facultati); InitialSeeder seeder = new InitialSeeder(context); seeder.Seed(); Console.WriteLine("Initial Seed completed!"); } while (true) { //Thread.Sleep(1000); Console.Clear(); Console.WriteLine("Select an option"); Console.WriteLine("1. Add a new faculty"); Console.WriteLine("2. Edit name for the last added faculty"); Console.WriteLine("3. Show all faculties"); Console.WriteLine("4. Delete last added faculty"); Console.WriteLine("5. Show number of students for every course"); Console.WriteLine("6. Show the student enrolled in the fewest courses"); Console.WriteLine("7. Show if there is a course without enrolled students"); Console.WriteLine("8. Show students"); Console.WriteLine("9. Exit"); var opt = Console.ReadLine(); if (opt == "9") { break; } switch (opt) { case "1": Console.WriteLine("Type faculty name: "); var n = Console.ReadLine(); context.Facultati.Add(new Facultate { Nume = n }); context.SaveChanges(); Console.WriteLine("Database Updated"); break; case "2": Console.WriteLine("Type faculty new name: "); var nn = Console.ReadLine(); context.Facultati.OrderBy(f => f.Id).Last().Nume = nn; context.SaveChanges(); Console.WriteLine("Database Updated"); break; case "3": Console.WriteLine("Faculties"); foreach (Facultate f in context.Facultati.ToList()) { Console.WriteLine(f.Nume); } break; case "4": Console.WriteLine("Deleting last added faculty"); context.Facultati.Remove(context.Facultati.OrderBy(f => f.Id).LastOrDefault()); Console.WriteLine("Database Updated"); break; case "5": Console.WriteLine("Number of students for every course"); foreach (Curs c in context.Cursuri.Include("Studenti").ToList()) { Console.WriteLine(c.Nume + " - " + c.Studenti.Count()); } break; case "6": //DTO var st = context.Studenti .Select(st => new SLC { Nume = st.Nume, Prenume = st.Prenume, NrCursuri = st.Cursuri.Count() }) .OrderBy(st => st.NrCursuri) .First(); Console.WriteLine("The student with the fewest courses"); Console.WriteLine(st.Nume + " " + st.Prenume + " - " + st.NrCursuri + " Courses"); break; case "7": var count = context.Cursuri.Where(cs => cs.Studenti.Count() == 0).Count(); if (count == 0) { Console.WriteLine("There are no courses without students"); } else { Console.WriteLine("There are" + count + "courses without students"); } break; case "8": Stats std = new Stats { Studenti = context.Studenti.Include("Facultate").Include("Cursuri").ToList().GroupBy(st => st.Facultate) .ToDictionary(s => s.Key, s => s.Select(s => new StudentM { Nume = s.Nume, Prenume = s.Prenume, MateriaPreferata = context.Cursuri.Where(c => c.Id == s.Cursuri.FirstOrDefault().CursId).FirstOrDefault().Nume, Materii = context.Cursuri.Where(c => s.Cursuri.Select(cc => cc.CursId).Contains(c.Id)).Select(c => c.Nume).ToList() }).ToList()) }; foreach (var e in std.Studenti) { Console.WriteLine(e.Key.Nume); foreach (var s in e.Value) { Console.Write(s.Nume + " " + s.Prenume + " " + s.MateriaPreferata + " - Materii la care este inscris: "); foreach (var m in s.Materii) { Console.Write(m + ", "); } Console.WriteLine(); } } break; default: Console.WriteLine("Invalid option"); break; } Console.WriteLine("Press Enter to continue..."); Console.ReadLine(); } }