Advertisement
Guest User

Untitled

a guest
Nov 6th, 2015
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 16.99 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using Mhotivo.Data.Entities;
  4. using Mhotivo.Implement.Context;
  5. using Mhotivo.Implement.Repositories;
  6. using Mhotivo.Interface.Interfaces;
  7. using System.Data.Entity.Migrations;
  8. using System.Linq;
  9.  
  10. namespace Mhotivo.Implement.Migrations
  11. {
  12.     public class Configuration : DbMigrationsConfiguration<MhotivoContext>
  13.     {
  14.         private IEducationLevelRepository _areaRepository;
  15.         private IGradeRepository _gradeRepository;
  16.         private ICourseRepository _courseRepository;
  17.         private IPensumRepository _pensumRepository;
  18.         private IAcademicYearRepository _academicYearRepository;
  19.         private IRoleRepository _roleRepository;
  20.         private ITeacherRepository _teacherRepository;
  21.         private INotificationTypeRepository _notificationTypeRepository;
  22.         public Configuration()
  23.         {
  24.             AutomaticMigrationsEnabled = true;
  25.             AutomaticMigrationDataLossAllowed = true;
  26.         }
  27.  
  28.         protected override void Seed(MhotivoContext context)
  29.         {
  30.             if (context.Users.Any())
  31.                 return;
  32.             _areaRepository = new EducationLevelRepository(context);
  33.             _gradeRepository = new GradeRepository(context);
  34.             _courseRepository = new CourseRepository(context);
  35.             _pensumRepository = new PensumRepository(context);
  36.             _academicYearRepository = new AcademicYearRepository(context);
  37.             _roleRepository = new RoleRepository(context);
  38.             _teacherRepository = new TeacherRepository(context);
  39.             _notificationTypeRepository = new NotificationTypeRepository(context);
  40.             _roleRepository.Create(new Role { Name = "Administrador", Privileges = new HashSet<Privilege>(), RoleId = 0 });
  41.             _roleRepository.Create(new Role { Name = "Padre", Privileges = new HashSet<Privilege>(), RoleId = 1 });
  42.             _roleRepository.Create(new Role { Name = "Maestro", Privileges = new HashSet<Privilege>(), RoleId = 2 });
  43.             _roleRepository.Create(new Role { Name = "Director", Privileges = new HashSet<Privilege>(), RoleId = 3 });
  44.             var admin = new User
  45.             {
  46.                 DisplayName = "Administrador",
  47.                 Email = "admin@mhotivo.org",
  48.                 Password = "password",
  49.                 IsActive = true,
  50.                 Role = _roleRepository.FirstOrDefault(x => x.Name == "Administrador")
  51.             };
  52.             admin.HashPassword();
  53.             context.Users.AddOrUpdate(admin);
  54.             context.SaveChanges();
  55.             context.NotificationTypes.AddOrUpdate(new NotificationType { Id = 1, Description = "General" });
  56.             context.NotificationTypes.AddOrUpdate(new NotificationType { Id = 2, Description = "Nivel De Educacion" });
  57.             context.NotificationTypes.AddOrUpdate(new NotificationType { Id = 3, Description = "Grado" });
  58.             context.NotificationTypes.AddOrUpdate(new NotificationType { Id = 4, Description = "Personal" });
  59.             context.SaveChanges();
  60.             DebuggingSeeder(context);
  61.             context.SaveChanges();
  62.         }
  63.  
  64.         private void DebuggingSeeder(MhotivoContext context)
  65.         {
  66.             _areaRepository.Create(new EducationLevel { Name = "Prescolar" });
  67.             _areaRepository.Create(new EducationLevel { Name = "Primaria" });
  68.             _areaRepository.Create(new EducationLevel { Name = "Secundaria" });
  69.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(1).Name, Name = "Kinder" });
  70.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(1).Name, Name = "Preparatoria" });
  71.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(2).Name, Name = "Primero" });
  72.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(2).Name, Name = "Segundo" });
  73.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(2).Name, Name = "Tercero" });
  74.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(2).Name, Name = "Cuarto" });
  75.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(2).Name, Name = "Quinto" });
  76.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(2).Name, Name = "Sexto" });
  77.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(3).Name, Name = "Septimo" });
  78.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(3).Name, Name = "Octavo" });
  79.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(3).Name, Name = "Noveno" });
  80.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(3).Name, Name = "Decimo" });
  81.             _gradeRepository.Create(new Grade { EducationLevel = _areaRepository.GetById(3).Name, Name = "Onceavo" });
  82.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(1), Name = "English" });
  83.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(1), Name = "Math" });
  84.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(2), Name = "English" });
  85.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(2), Name = "Math" });
  86.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(2), Name = "Science" });
  87.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(2), Name = "Espaniol" });
  88.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(2), Name = "Estudios Sociales" });
  89.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(3), Name = "Algebra" });
  90.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(3), Name = "Geometry" });
  91.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(3), Name = "Physics" });
  92.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(3), Name = "Biology" });
  93.             _courseRepository.Create(new Course { Area = _areaRepository.GetById(3), Name = "Physical Education" });
  94.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(1), Grade = _gradeRepository.GetById(1) });
  95.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(1), Grade = _gradeRepository.GetById(2) });
  96.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(2), Grade = _gradeRepository.GetById(2) });
  97.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(2), Grade = _gradeRepository.GetById(1) });
  98.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(3), Grade = _gradeRepository.GetById(3) });
  99.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(3), Grade = _gradeRepository.GetById(4) });
  100.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(4), Grade = _gradeRepository.GetById(5) });
  101.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(5), Grade = _gradeRepository.GetById(6) });
  102.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(6), Grade = _gradeRepository.GetById(7) });
  103.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(7), Grade = _gradeRepository.GetById(8) });
  104.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(8), Grade = _gradeRepository.GetById(9) });
  105.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(12), Grade = _gradeRepository.GetById(10) });
  106.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(9), Grade = _gradeRepository.GetById(11) });
  107.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(10), Grade = _gradeRepository.GetById(12) });
  108.             _pensumRepository.Create(new Pensum { Course = _courseRepository.GetById(11), Grade = _gradeRepository.GetById(13) });
  109.             for (int i = 1; i <= 13; i++)
  110.             {
  111.                 _academicYearRepository.Create(new AcademicYear { Approved = true, Grade = _gradeRepository.GetById(i), IsActive = true, Section = "A", Year = 2015 });
  112.                 _academicYearRepository.Create(new AcademicYear { Approved = true, Grade = _gradeRepository.GetById(i), IsActive = true, Section = "B", Year = 2015 });
  113.                 _academicYearRepository.Create(new AcademicYear { Approved = true, Grade = _gradeRepository.GetById(i), IsActive = true, Section = "C", Year = 2015 });
  114.             }
  115.             var genericTeacher = new User
  116.             {
  117.                 DisplayName = "Maestro Generico",
  118.                 Email = "teacher@mhotivo.org",
  119.                 Password = "password",
  120.                 IsActive = true,
  121.                 Role = _roleRepository.FirstOrDefault(x => x.Name == "Maestro")
  122.             };
  123.             genericTeacher.HashPassword();
  124.             var genericParent = new User
  125.             {
  126.                 DisplayName = "Padre Generico",
  127.                 Email = "parent@mhotivo.org",
  128.                 Password = "password",
  129.                 IsActive = true,
  130.                 Role = _roleRepository.FirstOrDefault(x => x.Name == "Padre")
  131.             };
  132.             genericParent.HashPassword();
  133.             var genericMom = new User
  134.             {
  135.                 DisplayName = "Madre Generica",
  136.                 Email = "mom@mhotivo.org",
  137.                 Password = "password",
  138.                 IsActive = true,
  139.                 Role = _roleRepository.FirstOrDefault(x => x.Name == "Padre")
  140.             };
  141.             genericMom.HashPassword();
  142.             context.Users.AddOrUpdate(genericTeacher);
  143.             context.Users.AddOrUpdate(genericParent);
  144.             context.SaveChanges();
  145.  
  146.             var maestroDefault = context.Teachers.FirstOrDefault(x => x.FullName == "Maestro Generico");
  147.             if (maestroDefault == null)
  148.             {
  149.                 context.Teachers.AddOrUpdate(new Teacher { IdNumber = "0000000000000", FirstName = "Maestro", LastName = "Generico", FullName = "Maestro Generico", Disable = false, MyGender = Gender.Masculino, MyUser = genericTeacher });
  150.             }
  151.             var padreDefault = context.Parents.FirstOrDefault(x => x.FullName == "Padre Generico");
  152.             if (padreDefault == null)
  153.             {
  154.                 context.Parents.AddOrUpdate(new Parent { IdNumber = "1234567890", FirstName = "Padre", LastName = "Generico", FullName = "Padre Generico", Disable = false, MyGender =  Gender.Masculino, MyUser = genericParent });
  155.             }
  156.             var madreDefault = context.Parents.FirstOrDefault(x => x.FullName == "Madre Generica");
  157.             if (madreDefault == null)
  158.             {
  159.                 context.Parents.AddOrUpdate(new Parent { IdNumber = "1234567133", FirstName = "Madre", LastName = "Generica", FullName = "Madre Generica", Disable = false, MyGender = Gender.Femenino, MyUser = genericMom });
  160.             }
  161.             context.SaveChanges();
  162.             var student = new Student()
  163.             {
  164.                 Id = 4,
  165.                 IdNumber = "8153-7946-98768",
  166.                 FirstName = "Hans",
  167.                 LastName = "Landa",
  168.                 AccountNumber = "21241103",
  169.                 Address = "Address No One Cares about",
  170.                 Biography = "none",
  171.                 BirthDate = "11/4/2015",
  172.                 BloodType = "O+",
  173.                 City = "Frankfurt",
  174.                 FullName = "Hans Landa",
  175.                 Nationality = "Aleman",
  176.                 State = "Frankfurt",
  177.                 Country = "Germany",
  178.                 MyGender = Gender.Masculino,
  179.                 StartDate = "11-11-2015",
  180.                 Tutor1 = context.Parents.FirstOrDefault(x => x.FullName == "Padre Generico"),
  181.                 Tutor2 = context.Parents.FirstOrDefault(x => x.FullName == "Madre Generica")
  182.             };
  183.             context.Students.Add(student);
  184.             context.SaveChanges();
  185.  
  186.             var enroll = new Enroll()
  187.             {
  188.                 Id = 1,
  189.                 AcademicYear = _academicYearRepository.GetById(25),
  190.                 Student = student
  191.             };
  192.             context.Enrolls.Add(enroll);
  193.             context.SaveChanges();
  194.  
  195.             var detail = new AcademicYearDetail()
  196.             {
  197.                 Id = 1,
  198.                 TeacherStartDate = DateTime.Today,
  199.                 TeacherEndDate = DateTime.Today,
  200.                 Schedule = DateTime.Today,
  201.                 Room = "445",
  202.                 AcademicYear = _academicYearRepository.GetById(25),
  203.                 Course = _courseRepository.GetById(8),
  204.                 Teacher = _teacherRepository.GetById(1)
  205.             };
  206.             context.AcademicYearDetails.Add(detail);
  207.             context.SaveChanges();
  208.  
  209.             var hw = new Homework()
  210.             {
  211.                 Id = 1,
  212.                 DeliverDate = DateTime.Today,
  213.                 Description = "<p>Heil Hydra</p>",
  214.                 Points = 15,
  215.                 Title = "HW Test",
  216.                 AcademicYearDetail = detail
  217.             };
  218.             context.Homeworks.Add(hw);
  219.             context.SaveChanges();
  220.  
  221.             var testNotification = new Notification()
  222.             {
  223.                 Id = 1,
  224.                 Approved = true,
  225.                 Created = DateTime.Today,
  226.                 GradeIdifNotificationTypePersonal = 0,
  227.                 IdGradeAreaUserGeneralSelected = 0,
  228.                 Message = "Hi, Im Glen!",
  229.                 NotificationComments = null,
  230.                 NotificationCreator = genericTeacher,
  231.                 NotificationName = "Testing Notifications",
  232.                 NotificationType = _notificationTypeRepository.GetById(3),
  233.                 Section = "A",
  234.                 SendingEmail = false,
  235.                 TargetStudent = null,
  236.                 UserCreatorId = genericTeacher.Id,
  237.                 UserCreatorName = genericTeacher.DisplayName,
  238.                 Users = new List<User>()
  239.             };
  240.             context.Notifications.Add(testNotification);
  241.  
  242.             var testgeneralNotification = new Notification()
  243.             {
  244.                 Id = 2,
  245.                 Approved = true,
  246.                 Created = DateTime.Today,
  247.                 GradeIdifNotificationTypePersonal = 0,
  248.                 IdGradeAreaUserGeneralSelected = 0,
  249.                 Message = "<p>Testing General Notifications</p>!",
  250.                 NotificationComments = null,
  251.                 NotificationCreator = genericTeacher,
  252.                 NotificationName = "Testing General Notifications",
  253.                 NotificationType = _notificationTypeRepository.GetById(1),
  254.                 Section = "Todos",
  255.                 SendingEmail = false,
  256.                 TargetStudent = null,
  257.                 UserCreatorId = genericTeacher.Id,
  258.                 UserCreatorName = genericTeacher.DisplayName,
  259.                 Users = new List<User>()
  260.             };
  261.             context.Notifications.Add(testgeneralNotification);
  262.  
  263.  
  264.             var testLevelNotification = new Notification()
  265.             {
  266.                 Id = 3,
  267.                 Approved = true,
  268.                 Created = DateTime.Today,
  269.                 GradeIdifNotificationTypePersonal = 0,
  270.                 IdGradeAreaUserGeneralSelected = 3,
  271.                 Message = "<p>Testing Level Notification<br></p>",
  272.                 NotificationComments = null,
  273.                 NotificationCreator = genericTeacher,
  274.                 NotificationName = "Testing Level Notification",
  275.                 NotificationType = _notificationTypeRepository.GetById(2),
  276.                 Section = "Todos",
  277.                 SendingEmail = false,
  278.                 TargetStudent = null,
  279.                 UserCreatorId = genericTeacher.Id,
  280.                 UserCreatorName = genericTeacher.DisplayName,
  281.                 Users = new List<User>()
  282.             };
  283.             context.Notifications.Add(testLevelNotification);
  284.  
  285.             var testPersonalNotification = new Notification()
  286.             {
  287.                 Id = 4,
  288.                 Approved = true,
  289.                 Created = DateTime.Today,
  290.                 GradeIdifNotificationTypePersonal = 0,
  291.                 IdGradeAreaUserGeneralSelected = 4,
  292.                 Message = "Testing Personal Notification",
  293.                 NotificationComments = null,
  294.                 NotificationCreator = genericTeacher,
  295.                 NotificationName = "Testing Personal Notification",
  296.                 NotificationType = _notificationTypeRepository.GetById(4),
  297.                 Section = "A",
  298.                 SendingEmail = false,
  299.                 TargetStudent = student,
  300.                 UserCreatorId = genericTeacher.Id,
  301.                 UserCreatorName = genericTeacher.DisplayName,
  302.                 Users = new List<User>()
  303.             };
  304.  
  305.             context.Notifications.Add(testPersonalNotification);
  306.             context.SaveChanges();
  307.         }
  308.     }
  309. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement