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; } } } }
public static void EnsureSeeded(this LiveHAPIContext context) { var x = new CsvHelper.Configuration.CsvConfiguration(); x.Delimiter = "|"; x.TrimFields = true; x.TrimHeaders = true; x.WillThrowOnMissingField = false; using (var transaction = context.Database.BeginTransaction()) { if (!context.Counties.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <County>()); } if (!context.SubCounties.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <SubCounty>()); } if (!context.PracticeTypes.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <PracticeType>()); } if (!context.MasterFacilities.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <MasterFacility>()); } if (!context.Practices.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Practice>()); } if (!context.Actions.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Core.Model.QModel.Action>()); } if (!context.Conditions.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Condition>()); } if (!context.KeyPops.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <KeyPop>()); } if (!context.MaritalStatuses.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <MaritalStatus>()); } if (!context.ProviderTypes.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <ProviderType>()); } if (!context.RelationshipTypes.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <RelationshipType>()); } if (!context.ConceptTypes.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <ConceptType>()); } if (!context.EncounterTypes.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <EncounterType>()); } if (!context.IdentifierTypes.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <IdentifierType>()); } if (!context.ValidatorTypes.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <ValidatorType>()); } if (!context.Validators.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Validator>()); } if (!context.Categories.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Category>()); } if (!context.Items.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Item>()); } if (!context.CategoryItems.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <CategoryItem>()); } if (!context.Persons.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Person>()); } if (!context.PersonNames.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <PersonName>()); } if (!context.Providers.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Provider>()); } if (!context.Users.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <User>()); } if (!context.Modules.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Module>()); } if (!context.Forms.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Form>()); } if (!context.Programs.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <FormProgram>()); } if (!context.Concepts.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Concept>()); } if (!context.Questions.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <Question>()); } if (!context.QuestionBranches.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <QuestionBranch>()); } if (!context.QuestionRemoteTransformations.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <QuestionRemoteTransformation>()); } if (!context.QuestionReValidations.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <QuestionReValidation>()); } if (!context.QuestionTransformation.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <QuestionTransformation>()); } if (!context.QuestionValidations.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <QuestionValidation>()); } if (!context.SubscriberSystems.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <SubscriberSystem>()); } if (!context.SubscriberConfigs.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <SubscriberConfig>()); } if (!context.SubscriberMaps.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <SubscriberMap>()); } if (!context.SubscriberTranslations.Any()) { context.BulkInsert(InitialSeeder.ReadCsv <SubscriberTranslation>()); } if (!context.SubscriberTranslations.Any(s => s.IsUpdated())) { context.BulkInsertOrUpdate(InitialSeeder.ReadCsv <County>()); context.BulkInsertOrUpdate(InitialSeeder.ReadCsv <Category>()); context.BulkInsertOrUpdate(InitialSeeder.ReadCsv <Item>()); context.BulkInsertOrUpdate(InitialSeeder.ReadCsv <CategoryItem>()); context.BulkInsertOrUpdate(InitialSeeder.ReadCsv <KeyPop>()); context.BulkInsertOrUpdate(InitialSeeder.ReadCsv <SubscriberTranslation>()); Log.Error(new string('*', 50)); Log.Error($" {Shared.Defualts.SyncVersion} "); Log.Error(new string('*', 50)); } context.BulkInsertOrUpdate(InitialSeeder.ReadCsv <SubscriberCohort>()); transaction.Commit(); } }
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(); } }