Exemplo n.º 1
0
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            using (var db = new ExersiceContext())
            {
                // Correct first and last name after migration.
                foreach (var person in db.Person)
                {
                    var nameParts = person.FirstName.Split(" ");
                    person.FirstName = nameParts[0];
                    if (nameParts.Length < 2)
                    {
                        person.LastName = " ";
                    }
                    else
                    {
                        for (int i = 1; i < nameParts.Length; i++)
                        {
                            person.LastName += nameParts[i] + " ";
                        }
                    }
                }

                // Set exercise pain levels to default value if no value is set.
                foreach (var exercise in db.SessionExercise)
                {
                    if (exercise.PainLevel == null)
                    {
                        exercise.PainLevel = 5;
                    }
                }
                db.SaveChanges();
            }
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            // UPPGIFT 4 - HÄMTA DATA
            using (var db = new ExersiceContext())
            {
                Console.WriteLine("SAMTLIGA PERSONER OCH DERAS TRÄNINGSPASS\n");

                var persons = db.Person
                              .OrderBy(p => p.FirstName)
                              .ThenBy(p => p.LastName)
                              .Include(p => p.Sessions)
                              .ToList();

                foreach (var p in persons)
                {
                    Console.WriteLine(p);
                    var sessions = p.Sessions;
                    foreach (var s in sessions)
                    {
                        Console.WriteLine($"\t{s}");
                    }
                    Console.WriteLine();
                }
            }

            using (var db = new ExersiceContext())
            {
                Console.WriteLine("ALL UTRUSTNING SOM INTE ANVÄNDS\n");

                var gear = db.Gear
                           .Include(g => g.SessionGear)
                           .Where(g => !g.SessionGear
                                  .Exists(sg => sg.GearId == g.Id))
                           .ToList();

                foreach (var g in gear)
                {
                    Console.WriteLine($@"{g.Name}");
                }
                Console.WriteLine();
            }

            using (var db = new ExersiceContext())
            {
                Console.WriteLine("HUR MÅNGA GÅNGER VARJE UTRUSTNING HAR ANVÄNDS\n");

                var query = db.Gear
                            .GroupJoin(db.SessionGear, g => g.Id, sg => sg.GearId, (g, gCol) =>
                                       new
                {
                    Name  = g.Name,
                    Count = gCol.Count()
                });

                foreach (var col in query)
                {
                    Console.WriteLine($@"{col.Name} {col.Count}");
                }
                Console.WriteLine();
            }

            using (var db = new ExersiceContext())
            {
                Console.WriteLine("VILKEN ÖVNING SOM HAR VARIT JOBBIGAST\n");

                // Join tables
                var qJoin = from se in db.SessionExercise
                            join s in db.Session on se.SessionId equals s.Id
                            join p in db.Person on s.PersonId equals p.Id
                            join e in db.Exercise on se.ExerciseId equals e.Id
                            select new
                {
                    Name     = p.FirstName + p.LastName,
                    Session  = s.Name,
                    Pain     = se.PainLevel,
                    Exercise = e.Name
                };

                // Group, order then take 1
                var qGroup = (from i in qJoin
                              group i by i.Pain into gr
                              orderby gr.Key descending
                              select gr).Take(1);

                foreach (var painGroup in qGroup)
                {
                    Console.WriteLine($"Pain level: {painGroup.Key}");
                    foreach (var session in painGroup)
                    {
                        Console.WriteLine($"" +
                                          $"{session.Name} " +
                                          $"{session.Session} " +
                                          $"{session.Exercise}");
                    }
                }
            }
        }
Exemplo n.º 3
0
 public IndexModel(ExersiceContext context)
 {
     _context = context;
 }
Exemplo n.º 4
0
 public IndexModel(ExersiceContext db) => this.db = db;