Example #1
0
        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();
            }
        }
Example #3
0
        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();
            }
        }