Пример #1
0
        static void Main(string[] args)
        {
            using (var db1 = new DbOneContext())
            {
                using (var db2 = new DbTwoContext())
                {
                    DbInitializer.Initialize(db1, db2);

                    var lectures = db1.GetLectures(db2);

                    foreach (var l in lectures)
                    {
                        Console.WriteLine(l.name);
                        Console.WriteLine($"Proctor: {l.proctor.name}");
                        Console.WriteLine("Attendees:");

                        foreach (var a in l.attendees)
                        {
                            Console.WriteLine(a.name);
                        }
                        Console.WriteLine();
                    }

                    Console.ReadLine();
                }
            }
        }
Пример #2
0
        public static UserModel GetUser(this DbTwoContext db2, int id)
        {
            var user = db2.Users.Find(id);

            return(new UserModel
            {
                id = user.Id,
                name = user.Name
            });
        }
Пример #3
0
        public static List <UserModel> GetAttendees(this DbTwoContext db2, int id)
        {
            var model = db2.UserLectures.Where(x => x.LectureId == id).Select(x => new UserModel
            {
                id   = x.UserId,
                name = x.User.Name
            }).OrderBy(x => x.name).ToList();

            return(model);
        }
Пример #4
0
        public static List <LectureModel> GetLectures(this DbOneContext db1, DbTwoContext db2)
        {
            var model = db1.Lectures.Select(x => new LectureModel
            {
                id        = x.Id,
                name      = x.Name,
                proctor   = db2.GetUser(x.UserId),
                attendees = db2.GetAttendees(x.Id)
            }).OrderBy(x => x.name).ToList();

            return(model);
        }
Пример #5
0
        public static void Initialize(DbOneContext db1, DbTwoContext db2)
        {
            db1.Database.EnsureCreated();
            db2.Database.EnsureCreated();

            if (!db2.Users.Any() && !db1.Lectures.Any())
            {
                var users = new User[]
                {
                    new User {
                        Name = "User A"
                    },
                    new User {
                        Name = "User B"
                    },
                    new User {
                        Name = "User C"
                    }
                };

                db2.Users.AddRange(users);
                db2.SaveChanges();

                var lectures = new Lecture[]
                {
                    new Lecture {
                        Name = "Lecture A", UserId = 1
                    },
                    new Lecture {
                        Name = "Lecture B", UserId = 2
                    },
                    new Lecture {
                        Name = "Lecture C", UserId = 3
                    }
                };

                db1.Lectures.AddRange(lectures);
                db1.SaveChanges();

                var userLectures = new UserLecture[]
                {
                    new UserLecture {
                        LectureId = 1, UserId = 2
                    },
                    new UserLecture {
                        LectureId = 1, UserId = 3
                    },
                    new UserLecture {
                        LectureId = 2, UserId = 1
                    },
                    new UserLecture {
                        LectureId = 2, UserId = 3
                    },
                    new UserLecture {
                        LectureId = 3, UserId = 1
                    },
                    new UserLecture {
                        LectureId = 3, UserId = 2
                    }
                };

                db2.UserLectures.AddRange(userLectures);
                db2.SaveChanges();
            }
        }