private static void SeedGroups(KidsManagementDbContext db)
        {
            var groups    = new List <Group>();
            var startDate = DateTime.Now;
            var level     = db.Levels.FirstOrDefault();
            var teachers  = db.Teachers.Take(10).ToList();

            for (int i = 0; i < 10; i++)
            {
                var teacher = teachers[i];
                var group   = new Group
                {
                    Teacher             = teacher,
                    StartTime           = new TimeSpan(17, 30, 0),
                    Name                = $"{teacher.FirstName} {"MON"} {new TimeSpan(17, 30, 0)}",
                    AgeGroup            = AgeGroup.Preschool,
                    CurrentLessonNumber = 1,
                    DayOfWeek           = DayOfWeek.Monday,
                    Duration            = new TimeSpan(1, 45, 0),
                    StartDate           = startDate.Date,
                    EndDate             = startDate.AddDays(16 * 7),
                    EndTime             = new TimeSpan(19, 00, 0),
                    Level               = level,
                };
                startDate.AddDays(1);

                groups.Add(group);
            }
            db.Groups.AddRange(groups);
            // db.SaveChanges();
        }
        private static void AddStudentsToGroup(KidsManagementDbContext db)
        {
            int amountOfStudents = 10;
            var students         = db.Students
                                   .Where(s => s.GroupId == null)
                                   .Take(amountOfStudents)
                                   .ToArray();

            int amountOfGroups = 2;
            var groups         = db.Groups.
                                 Where(g => g.MaxStudents <= g.Students.Count)
                                 .Take(amountOfGroups)
                                 .ToArray();

            for (int i = 0; i < 10; i++)
            {
                var student = students[i];
                if (i < amountOfStudents / 2)
                {
                    student.GroupId = groups[0].Id;
                }
                else
                {
                    student.GroupId = groups[1].Id;
                }
            }

            // db.SaveChanges();
        }
        private static void SeedStudents(KidsManagementDbContext db)
        {
            var students  = new List <Student>();
            var startDate = DateTime.Now.AddYears(-6);
            var gender    = Gender.Male;

            for (int i = 0; i < 100; i++)
            {
                int ageCounter = 5;
                var student    = new Student
                {
                    FirstName  = $"Student {i}",
                    MiddleName = "Ivanov",
                    LastName   = "Petrov",
                    Age        = ageCounter,
                    BirthDate  = startDate,
                    Gender     = gender,
                    Grade      = i > 50 ? GradeLevel.FirstGroup : GradeLevel.GradeOne,
                    Status     = StudentStatus.Initial,
                };
                students.Add(student);

                ageCounter = ageCounter >= 10 ? 5 : ageCounter++;
                gender     = gender == Gender.Male ? Gender.Female : Gender.Female;
            }

            db.Students.AddRange(students);
            //  db.SaveChanges();
        }
        public static void Main()
        {
            var db = new KidsManagementDbContext();

            //var gs = new GroupsService(db);
            //var result = gs.GetAll();
            //Console.WriteLine(gs.GetAll().ToString());

            //db.Database.Migrate();
            SeedParentsTeachersAdmins(db);
            //SeedLevels(db);
            //SeedGroups(db);
            //SeedStudents(db);
            //AddStudentsToGroup(db);
            //UpdateGroupStatuses(db);
            //UpdateGroupAgeGroups(db);
            //UpdateStudentStatuses(db);
            //UpdateStudentGrades(db);

            //AssignStudentsToParents(db);
            //UpdateParentsStatuses(db); does nothing if the item below is not met
            //write a method to asign parents to children

            //testGettingPicString(); TOREMOVE
            //UpdateTeachersStatuses(db);
            //UpdateGroupActiveStatuses(db);
        }
        private static void UpdateGroupStatuses(KidsManagementDbContext db)
        {
            var groups = db.Groups
                         .Include(x => x.Students)
                         .ToArray();

            foreach (var grp in groups)
            {
                int count = grp.Students.Count();
                int max   = grp.MaxStudents;
                if (count == 0)
                {
                    grp.Status = GroupStatus.Empty;
                }
                else if (count < max)
                {
                    grp.Status = GroupStatus.NotFull;
                }
                else if (count == max)
                {
                    grp.Status = GroupStatus.Full;
                }
                else if (count > max)
                {
                    grp.Status = GroupStatus.OverLimit;
                }
            }

            //db.SaveChanges();
        }
 public TeachersService(KidsManagementDbContext db, ICloudinaryService cloudinaryService, UserManager <ApplicationUser> userManager) : base
         (db, userManager)
 {
     this.db = db;
     this.cloudinaryService = cloudinaryService;
     this.userManager       = userManager;
 }
示例#7
0
 public IdentitySeeder(IServiceProvider serviceProvider, KidsManagementDbContext dbContext)
 {
     this.serviceProvider = serviceProvider;
     this.db = dbContext;
     this.userManager = this.serviceProvider.GetService<UserManager<ApplicationUser>>();
     this.roleManager = this.serviceProvider.GetService<RoleManager<ApplicationRole>>();
 }
        private static void UpdateGroupAgeGroups(KidsManagementDbContext db)
        {
            var groups = db.Groups
                         .ToArray();

            foreach (var grp in groups)
            {
                grp.AgeGroup = AgeGroup.Preschool;
            }

            db.SaveChanges();
        }
        private static void UpdateStudentStatuses(KidsManagementDbContext db)
        {
            var students = db.Students
                           .ToArray();

            foreach (var student in students)
            {
                if (student.GroupId == null)
                {
                    student.Status = StudentStatus.Waiting;
                }
                else
                {
                    student.Status = StudentStatus.Active;
                }
            }

            db.SaveChanges();
        }
示例#10
0
        private static void UpdateTeachersStatuses(KidsManagementDbContext db)
        {
            var teachers = db.Teachers
                           .Include(t => t.Groups)
                           .ToArray();

            foreach (var teacher in teachers)
            {
                if (teacher.Groups.Count == 0)
                {
                    teacher.Status = TeacherStatus.Initial;
                }
                else
                {
                    teacher.Status = TeacherStatus.Active;
                }
            }
            db.SaveChanges();
        }
示例#11
0
        private static void UpdateStudentGrades(KidsManagementDbContext db)
        {
            var students = db.Students
                           .ToArray();

            foreach (var student in students)
            {
                var age = student.Age;
                if (age >= 3 && age <= 19)
                {
                    student.Grade = (GradeLevel)(age - 3);
                }
                else
                {
                    student.Grade = GradeLevel.Other;
                }
            }

            db.SaveChanges();
        }
示例#12
0
        private static void UpdateParentsStatuses(KidsManagementDbContext db)
        {
            var parents = db.Parents
                          .Include(p => p.Children)
                          .ThenInclude(sp => sp.Student)
                          .ToArray();

            foreach (var parent in parents)
            {
                //if (parent.Id == 72)
                //    Console.WriteLine();
                if (parent.Children.Count == 0)
                {
                    parent.Status = ParentStatus.Initial;
                }
                else
                {
                    if (parent.Children.Any(s => s.Student.Status == StudentStatus.Active))
                    {
                        parent.Status = ParentStatus.Active;
                    }
                    else if (parent.Children.All(s => s.Student.Status == StudentStatus.Quit))
                    {
                        parent.Status = ParentStatus.Quit;
                    }
                    else if (parent.Children.All(s => s.Student.Status == StudentStatus.Inactive))
                    {
                        parent.Status = ParentStatus.Inactive;
                    }
                    else
                    {
                        parent.Status = ParentStatus.Initial; //parent has at least 1 child that can still become active
                    }
                }
            }

            db.SaveChanges();
        }
 public StudentsService(KidsManagementDbContext db, ICloudinaryService cloudinaryService)
 {
     this.db = db;
     this.cloudinaryService = cloudinaryService;
 }
示例#14
0
 public ApplicationUserService(KidsManagementDbContext db, UserManager <ApplicationUser> userManager)
 {
     this.db          = db;
     this.userManager = userManager;
 }
 public GroupsService(KidsManagementDbContext db, IStudentsService studentsService)
 {
     this.db = db;
     this.studentsService = studentsService;
 }
示例#16
0
 public LevelsService(KidsManagementDbContext db)
 {
     this.db = db;
 }