public static void Initialize(TimeTrackingContext context)
        {
            context.Database.EnsureCreated();

            if (context.Roles.Any())
            {
                return;
            }

            //MAIN ROLES
            context.Contacts.RemoveRange(context.Contacts);
            context.Roles.RemoveRange(context.Roles);
            context.Employees.RemoveRange(context.Employees);
            context.Statuses.RemoveRange(context.Statuses);

            var roles = new Role[]
            {
                new Role {
                    Name = "Employee"
                },
                new Role {
                    Name = "Manager"
                },
                new Role {
                    Name = "Admin"
                }
            };

            foreach (Role role in roles)
            {
                context.Roles.Add(role);
            }
            context.SaveChanges();

            //MAIN REQUEST STATUSES
            var statuses = new Status[]
            {
                new Status {
                    Name = "In Process"
                },
                new Status {
                    Name = "Accepted"
                },
                new Status {
                    Name = "Rejected"
                },
            };

            foreach (Status status in statuses)
            {
                context.Statuses.Add(status);
            }
            context.SaveChanges();

            //ADMIN EMPLOYEE
            var contact = new Contact {
                Address = "123 Road Drive", City = "cityville", State = "MI", Phone = "1234567890"
            };

            context.Contacts.Add(contact);

            var employee = new Employee {
                FirstName = "Admin",
                LastName  = "Istrator",
                PTO       = 80,
                Role      = context.Roles.Find(3), //3 = admin role
                Contact   = contact,
                ClockedIn = false
            };

            context.Employees.Add(employee);

            context.SaveChanges();
        }
        //METHOD IS CALLED IN Program.cs MAIN METHOD
        public static void Initialize(TimeTrackingContext context)
        {
            context.Database.EnsureCreated();

            //UNCOMMENTING THIS SECTION WILL CLEAR THE DATABASE ENTIRELY AND SET NEW ID'S TO ALL OBJECTS. PLEASE USE THIS ONLY FOR TESTING PURPOSES!!!!

            /*context.Contacts.RemoveRange(context.Contacts);
             * context.SaveChanges();
             * context.Roles.RemoveRange(context.Roles);
             * context.SaveChanges();
             * context.Employees.RemoveRange(context.Employees);
             * context.SaveChanges();
             * context.Statuses.RemoveRange(context.Statuses);
             * context.SaveChanges();
             * context.Tasks.RemoveRange(context.Tasks);
             * context.SaveChanges();
             * context.PTORequests.RemoveRange(context.PTORequests);
             * context.SaveChanges();
             * context.TimeEntries.RemoveRange(context.TimeEntries);
             * context.SaveChanges();*/

            if (context.Roles.Any())
            {
                Console.WriteLine(context); //*****If the database has already been initialized, add breakpoint here to view the database tables and records!
                return;
            }

            //MAIN ROLES

            var roles = new Role[]
            {
                new Role {
                    Name = "Employee"
                },
                new Role {
                    Name = "Manager"
                },
                new Role {
                    Name = "Admin"
                }
            };

            foreach (Role role in roles)
            {
                context.Roles.Add(role);
            }
            context.SaveChanges();

            //MAIN TASKS
            var tasks = new Models.Task[]
            {
                new Models.Task {
                    Name = "Janitorial", ManagerialTask = false
                },
                new Models.Task {
                    Name = "Front Cashier", ManagerialTask = false
                },
                new Models.Task {
                    Name = "Window Cashier", ManagerialTask = false
                },
                new Models.Task {
                    Name = "Cook", ManagerialTask = false
                },
                new Models.Task {
                    Name = "Restock", ManagerialTask = false
                },
                new Models.Task {
                    Name = "Shift Manager", ManagerialTask = true
                },
                new Models.Task {
                    Name = "Scheduling / Paperwork", ManagerialTask = true
                }
            };

            foreach (Models.Task task in tasks)
            {
                context.Tasks.Add(task);
            }
            context.SaveChanges();

            //MAIN REQUEST STATUSES
            var statuses = new Status[]
            {
                new Status {
                    Name = "In Process"
                },
                new Status {
                    Name = "Accepted"
                },
                new Status {
                    Name = "Rejected"
                },
            };

            foreach (Status status in statuses)
            {
                context.Statuses.Add(status);
            }
            context.SaveChanges();

            //ADMIN EMPLOYEE (AND CONTACT)
            var contact = new Contact {
                Address = "123 Road Drive", City = "cityville", State = "MI", Phone = "1234567890"
            };

            context.Contacts.Add(contact);
            context.SaveChanges();

            var adminRole = context.Roles.Where(role => role.Name == "Admin").FirstOrDefault();

            var employee = new Employee {
                FirstName = "Admin",
                LastName  = "Istrator",
                PTO       = 80,
                Role      = adminRole,
                Contact   = contact,
                ClockedIn = false
            };

            context.Employees.Add(employee);

            context.SaveChanges();

            Console.WriteLine(context); //*****add breakpoint here to view the database tables and records!
        }