public UnitOfWork(HubContext hubContext, IActivityLogger logger) { //initialize data context and repositories _hubContext = hubContext; Courses = new CourseRepository(_hubContext); CourseCategories = new Repository <CourseCategory>(_hubContext); AdminUsers = new Repository <AdminUser>(_hubContext); Members = new Repository <Member>(_hubContext); CourseMembers = new Repository <CourseMember>(_hubContext); ActivityLogItems = new Repository <ActivityLogItem>(_hubContext); //set activity logger Logger = logger; }
public static void SeedDatabase(IHostingEnvironment env, HubContext context) { DataToSeed data; using (StreamReader r = new StreamReader(Path.Combine(env.ContentRootPath, "data/seed.json"))) { var json = r.ReadToEnd(); data = JsonConvert.DeserializeObject <DataToSeed>(json); } if (!context.AdminUsers.Any()) { context.AdminUsers.Add(new AdminUser("admin", "password")); } if (!context.Members.Any()) { foreach (var member in data.Members) { member.SetPassword("password"); } context.Members.AddRange(data.Members); //context.Members.Add(new Member("*****@*****.**","Chris","Dunn", "password")); //context.Members.Add(new Member("*****@*****.**", "Megan", "Dunn", "password")); //context.Members.Add(new Member("*****@*****.**", "Abby", "Dunn", "password")); } context.SaveChanges(); if (!context.Courses.Any()) { XDocument doc = new XDocument(); var dataFile = Path.Combine(env.ContentRootPath, "data/data.xml"); if (File.Exists(dataFile)) { doc = XDocument.Load(dataFile); foreach (var categoryXml in doc.Descendants("Category").ToList().Select(m => m.Value).Distinct()) { var category = new CourseCategory(); category.Title = categoryXml; context.CourseCategories.Add(category); } context.SaveChanges(); var rnd = new Random(); foreach (var courseXml in doc.Descendants("Link")) { var course = new Course(); course.Description = courseXml.Element("Description").Value; course.Title = courseXml.Element("Title").Value; course.Location = courseXml.Element("Address").Value; course.ImageUrl = "/images/courses/" + courseXml.Element("Photo").Value; course.InstructorId = context.Members.Find(rnd.Next(1, 50)).Id; course.CourseCategoryId = context.CourseCategories.Single(m => m.Title == courseXml.Element("Category").Value).Id; context.Courses.Add(course); } context.SaveChanges(); } } }