//public static void GenerateLicense(DateTime expiredDate, bool isActive, bool isDemo)
        //{
        //    ImusCityHallEntities db = new ImusCityHallEntities();
        //    StringDictionary licenseCodes = new StringDictionary();
        //    licenseCodes.Add("1", "BDBR5VUAYDQD9FWJV9VSCZJNWV87UN");
        //    licenseCodes.Add("1", "KKFGXKZCSNBZBBKR24SFJJ3PEUAXC7");
        //    licenseCodes.Add("1", "RWDGUYBSE4XT9SRH6LKNSRWUY6LLGR");
        //    licenseCodes.Add("1", "NSBNT984V82SGTN342NBKHUYNEGB4C");
        //    licenseCodes.Add("1", "7Y2DRE3XCF9R2BQ36W252YFCGRBUXR");

        //    LicensingCode licenseCode = new LicensingCode();

        //}
        static void Main(string[] args)
        {
            ImusCityHallEntities db       = new ImusCityHallEntities();
            Employee             employee = new Employee();

            employee.EmployeeNo = "0000001";

            if (!db.Employees.Any(m => m.EmployeeNo == employee.EmployeeNo))
            {
                int superAdmin = SuperAdminCreation();
                //Admin Creation
                employee.FirstName    = "HalconTech";
                employee.LastName     = "HalconTech";
                employee.PrimaryEmail = "*****@*****.**";
                employee.IsAdmin      = true;
                db.Employees.Add(employee);

                AspNetRole roles = new AspNetRole();
                roles.Id   = "2";
                roles.Name = "Administrator";
                db.AspNetRoles.Add(roles);
                db.SaveChanges();

                db = new ImusCityHallEntities();
                AspNetUser     aspuser     = new AspNetUser();
                AspNetUserRole asproleuser = new AspNetUserRole();
                aspuser.Id                   = Guid.NewGuid().ToString();
                aspuser.UserName             = employee.EmployeeNo;
                aspuser.Email                = employee.PrimaryEmail;
                aspuser.EmailConfirmed       = true;
                aspuser.PhoneNumberConfirmed = false;
                aspuser.TwoFactorEnabled     = false;
                aspuser.LockoutEnabled       = true;
                aspuser.AccessFailedCount    = 0;
                aspuser.SecurityStamp        = Guid.NewGuid().ToString();
                var passwordHasher = new Microsoft.AspNet.Identity.PasswordHasher();
                aspuser.PasswordHash = passwordHasher.HashPassword("Pa$$w0rd");
                var adduser = db.AspNetUsers.Add(aspuser);
                asproleuser.UserId = adduser.Id;
                asproleuser.RoleId = "2";
                db.AspNetUserRoles.Add(asproleuser);
                db.SaveChanges();


                SubmoduleCreation();
                CreateSecurityQuestion();
                SetUserAccess(employee.EmployeeID);
                SetUserAccess(superAdmin);
                Console.WriteLine("Admin account created succesfully");
                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("Account is already created");
                Console.ReadLine();
            }
        }
        public static int SuperAdminCreation()
        {
            ImusCityHallEntities db       = new ImusCityHallEntities();
            Employee             employee = new Employee();

            employee.EmployeeNo   = "123456";
            employee.FirstName    = "HalconTech";
            employee.LastName     = "HalconTech";
            employee.PrimaryEmail = "*****@*****.**";
            employee.IsAdmin      = true;
            db.Employees.Add(employee);

            AspNetRole roles = new AspNetRole();

            roles.Id   = "1";
            roles.Name = "Super Administrator";
            db.AspNetRoles.Add(roles);
            db.SaveChanges();

            db = new ImusCityHallEntities();
            AspNetUser     aspuser     = new AspNetUser();
            AspNetUserRole asproleuser = new AspNetUserRole();

            aspuser.Id                   = Guid.NewGuid().ToString();
            aspuser.UserName             = employee.EmployeeNo;
            aspuser.Email                = employee.PrimaryEmail;
            aspuser.EmailConfirmed       = true;
            aspuser.PhoneNumberConfirmed = false;
            aspuser.TwoFactorEnabled     = false;
            aspuser.LockoutEnabled       = true;
            aspuser.AccessFailedCount    = 0;
            aspuser.SecurityStamp        = Guid.NewGuid().ToString();
            var passwordHasher = new Microsoft.AspNet.Identity.PasswordHasher();

            aspuser.PasswordHash = passwordHasher.HashPassword("Pa$$w0rd");
            var adduser = db.AspNetUsers.Add(aspuser);

            asproleuser.UserId = adduser.Id;
            asproleuser.RoleId = "1";
            db.AspNetUserRoles.Add(asproleuser);

            db.SaveChanges();


            return(employee.EmployeeID);
        }