public LectorsController(EducationDB db) => _db = db;
public static void Initialize(this EducationDB db) { if (!db.StudentGroups.Any()) { for (var i = 1; i <= 6; i++) { db.StudentGroups.AddRange( new StudentGroup { Name = $"04-{i}07" }, new StudentGroup { Name = $"04-{i}06" }, new StudentGroup { Name = $"04-{i}08" }, new StudentGroup { Name = $"04-{i}15" }, new StudentGroup { Name = $"04-{i}01" }, new StudentGroup { Name = $"04-{i}03" } ); } db.SaveChanges(); } if (!db.Students.Any()) { var groups = db.StudentGroups.ToArray(); var rnd = new Random(); using (var reader = File.OpenText("names2.txt")) while (!reader.EndOfStream) { var line = reader.ReadLine(); if (line is null) { continue; } var components = line.Split(' '); if (components.Length < 2) { continue; } db.Students.Add(new Student { Surname = components[0], Name = components[1], Group = rnd.Next(groups) }); } db.SaveChanges(); } if (!db.Courses.Any()) { db.Courses.AddRange( new Course { Name = "РПУ" }, new Course { Name = "АФУ" }, new Course { Name = "Электродинамика" }, new Course { Name = "Введение в специальность" }, new Course { Name = "ЭМС" }, new Course { Name = "Проектирование ФАР и АФАР" } ); db.SaveChanges(); var students = db.Students.ToArray(); var courses = db.Courses.ToArray(); var rnd = new Random(); for (var i = 0; i < students.Length; i++) { var stud = rnd.Next(students); if (stud.Courses is null) { stud.Courses = new List <StudentsCourses>(); } var crs = rnd.Next(courses); if (stud.Courses.Any(c => c.Course == crs)) { continue; } stud.Courses.Add(new StudentsCourses { Course = crs, Student = stud }); } db.SaveChanges(); } if (!db.Lectors.Any()) { void AddLector(string name, string surname, string patronymic, params string[] courses) { if (db.Lectors.Any(l => l.Name == name && l.Surname == surname)) { return; } var lector = new Lector { Name = name, Surname = surname, Patronymic = patronymic, Courses = new List <LectorsCourses>() }; foreach (var course in courses) { var db_course = db.Courses.FirstOrDefault(c => c.Name == course); if (db_course is null) { db_course = new Course { Name = course }; db.Courses.Add(db_course); } var lector_course = new LectorsCourses { Lector = lector, Course = db_course }; lector.Courses.Add(lector_course); } db.Lectors.Add(lector); } AddLector("Андрей", "Щербачёв", "Юрьевич", "РПУ"); AddLector("Олег", "Терёхин", "Васильевич", "ЭМС", "АФУ"); AddLector("Антон", "Васин", "Александрович", "ЭМС", "РПУ"); AddLector("Павел", "Шмачилин", "Александрович", "АФУ", "РПУ", "Введение в специальность"); AddLector("Александр", "Гринёв", "Юрьевич", "Электродинамика"); AddLector("Леонид", "Пономарёв", "Иванович", "АФУ", "ЭМС"); AddLector("Дмитрий", "Воскресенский", "Иванович", "АФУ", "Проектирование ФАР и АФАР"); AddLector("Елена", "Добычина", "Михайловна", "РПУ"); AddLector("Елена", "Овчинникова", "Викторовна", "АФУ", "Сверхширокополосные системы"); db.SaveChanges(); } if (!db.LabWorks.Any()) { db.LabWorks.AddRange( new LabWork { Name = "Длинная линия", Course = db.Courses.First(g => g.Name == "АФУ") }, new LabWork { Name = "Симметричный вибратор", Course = db.Courses.First(g => g.Name == "АФУ") }, new LabWork { Name = "Умножитель частоты", Course = db.Courses.First(g => g.Name == "РПУ") }, new LabWork { Name = "Автогенератор", Course = db.Courses.First(g => g.Name == "РПУ") }, new LabWork { Name = "Падение плоской волны на границу раздела двух сред", Course = db.Courses.First(g => g.Name == "Электродинамика") }, new LabWork { Name = "Зеркальная антенна", Course = db.Courses.First(g => g.Name == "АФУ") } ); db.SaveChanges(); } if (!db.Students.Any(s => s.LabWorks.Count > 0)) { var students = db.Students.ToArray(); var labs = db.LabWorks.ToArray(); var rnd = new Random(); for (var i = 0; i < students.Length * 5; i++) { var stud = rnd.Next(students); if (stud.LabWorks is null) { stud.LabWorks = new List <StudentsLabWorks>(); } var lbw = rnd.Next(labs); if (stud.Courses != null && stud.Courses.Any(c => c.Course == lbw.Course) && !stud.LabWorks.Any(lw => lw.LabWorks == lbw)) { stud.LabWorks.Add(new StudentsLabWorks { Rating = rnd.Next(1, 6), LabWorks = lbw, Student = stud }); } } db.SaveChanges(); } const string test_student_group_name = "TestGroup"; var test_group = db.StudentGroups.Include(g => g.Students).FirstOrDefault(g => g.Name == test_student_group_name); if (test_group is null) { test_group = new StudentGroup { Name = test_student_group_name, Students = new List <Student>(20) }; db.StudentGroups.Add(test_group); db.SaveChanges(); } if (test_group.Students.Count == 0) { for (var i = 1; i <= 20; i++) { var student = new Student { Surname = $"Surname {i:00}", Name = $"Student {i:00}", Group = test_group }; db.Students.Add(student); } db.SaveChanges(); } }
protected SQLDataService(EducationDB db) => _db = db;
public SQLLessonsService(EducationDB db) : base(db) { }
public static void Main(string[] args) { var config = new ConfigurationBuilder() // создание объекта конфигурации приложения .SetBasePath(Environment.CurrentDirectory) // указание ему рабочей директории, откуда читать файлы .AddJsonFile("appsettings.json") // указание, что мы будем использовать указанный файл в формате json .Build(); // построение конфигурации // создание строителя конфигурации БД var db_config = new DbContextOptionsBuilder <EducationDB>(); // указание, что мы хотим использовать sql сервер, указываем строку подключения по имени из конфигурационного файла db_config.UseSqlServer(config.GetConnectionString("DefaultConnection")); // создание контекста БД using (var db = new EducationDB(db_config.Options)) { db.Database.EnsureCreated(); // проверяем, что БД существует (иначе создаём новую БД) db.Initialize(); using (var connection = new SqlConnection(config.GetConnectionString("DefaultConnection"))) { connection.Open(); while (true) { Console.Write("Enter command >>"); var cmd = Console.ReadLine(); if (cmd?.Equals("exit", StringComparison.OrdinalIgnoreCase) == true) { break; } if (cmd is null) { continue; } if (cmd.Equals("help")) { PrintHelp(); continue; } if (cmd.Equals("clear") || cmd.Equals("cls")) { Console.Clear(); continue; } var d_index = cmd.IndexOf(':'); string cmd_prefix; string cmd_body; if (d_index >= 0) { cmd_prefix = cmd.Substring(0, cmd.IndexOf(':')); cmd_body = cmd.Substring(cmd_prefix.Length + 1); } else { cmd_prefix = null; cmd_body = cmd; } try { var command = new SqlCommand(cmd_body, connection); switch (cmd_prefix) { case "scalar": { var result = command.ExecuteScalar(); Console.WriteLine(result); } break; case "nonquery": case "nq": { var result = command.ExecuteNonQuery(); Console.WriteLine(result); } break; case "reader": case "vector": default: { using (var reader = command.ExecuteReader()) { var schema = reader.GetColumnSchema(); foreach (var db_column in schema) { Console.Write($"{db_column.ColumnName} "); } Console.WriteLine(); while (reader.Read()) { for (var i = 0; i < schema.Count; i++) { Console.Write($"{reader[i]}| "); } Console.WriteLine(); } Console.WriteLine(); } } break; } } catch (Exception error) { Console.WriteLine("При выполнении команды {0} произошла ошибка:", cmd_body); Console.WriteLine(error.GetType().Name); Console.WriteLine(error.Message); Console.WriteLine(); } } } } }
public CoursesController(EducationDB db) => _DB = db;
public EducationDBInit(EducationDB db, UserManager <User> UserManager, RoleManager <Role> RoleManager) { _db = db; _UserManager = UserManager; _RoleManager = RoleManager; }
public StudentsController(EducationDB db) => _DB = db;