Exemplo n.º 1
0
        public IUserManager GetUserManager(AuthorizationContext context)
        {
            CustomUserStore store   = new CustomUserStore(context);
            IUserManager    manager = new CustomUserManager(store);

            return(manager);
        }
Exemplo n.º 2
0
        public CustomUserManager GetUserManager(SPPContext context)
        {
            CustomUserStore   store   = new CustomUserStore(context);
            CustomUserManager manager = new CustomUserManager(store);

            return(manager);
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            var userName = "******";
            var password = "******";

            //using default usermanager and store
            //var userstore = new userstore<identityuser>();
            //var usermanager = new usermanager<identityuser>(userstore);

            //use custom user and userstore
            var userstore   = new CustomUserStore(new CustomuserDbContext());
            var userManager = new UserManager <CustomUser, int>(userstore);

            //Adding a user
            //var result = userManager.Create(new CustomUser {UserName=userName }, password);
            //Console.WriteLine("User created:" + result.Succeeded);

            //add claim to user
            var user = userManager.FindByName(userName);
            //var claimresult = userManager.AddClaim(user.Id, new System.Security.Claims.Claim("given_name", "wasim"));
            //Console.WriteLine("Claim added: " + claimresult.Succeeded);

            //check password
            var isMatch = userManager.CheckPassword(user, password);

            Console.WriteLine(isMatch);
        }
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var userStore = new CustomUserStore(new ApplicationDbContext());
            var manager   = new ApplicationUserManager(userStore);
            var user      = await manager.FindAsync(context.UserName, context.Password);

            if (user != null)
            {
                var identity = new ClaimsIdentity(context.Options.AuthenticationType);
                identity.AddClaim(new Claim("Username", user.UserName));
                identity.AddClaim(new Claim("LoggedOn", DateTime.Now.ToString()));
                identity.AddClaim(new Claim("Id", user.Id.ToString()));
                var userRoles      = manager.GetRoles(user.Id);
                var additionalData = new AuthenticationProperties(new Dictionary <string, string>()
                {
                    { "Id", user.Id.ToString() },
                    { "Username", user.UserName },
                    { "role", Newtonsoft.Json.JsonConvert.SerializeObject(userRoles) }
                });
                var token = new AuthenticationTicket(identity, additionalData);
                context.Validated(token);
            }
            else
            {
                return;
            }
        }
Exemplo n.º 5
0
        public TeachersController()
        {
            var context = new ApplicationDbContext();

            _repository = new TeacherRepository(context);
            _store      = new CustomUserStore(context);
        }
Exemplo n.º 6
0
 public CustomUserManager(IUserStore <UserModel> store, IOptions <IdentityOptions> optionsAccessor, IPasswordHasher <UserModel> passwordHasher,
                          IEnumerable <IUserValidator <UserModel> > userValidators, IEnumerable <IPasswordValidator <UserModel> > passwordValidators, ILookupNormalizer keyNormalizer,
                          IdentityErrorDescriber errors, IServiceProvider services, ILogger <UserManager <UserModel> > logger)
     : base(store, optionsAccessor, passwordHasher, userValidators, passwordValidators, keyNormalizer, errors, services, logger)
 {
     this.store = (CustomUserStore)store;
 }
Exemplo n.º 7
0
        public void FindByEmailAsync_Test()
        {
            CustomUserStore userstore = new CustomUserStore(new UserStore <ApplicationUser>(new MaharajasDbContext()), context);
            Task <bool>     check     = userstore.CheckByEmailAsync("*****@*****.**");

            Assert.IsTrue(check.Result);
        }
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                var dbContext   = new SampleDataBaseContext(new DbContextOptions <SampleDataBaseContext>());
                var userStore   = new CustomUserStore(dbContext);
                var userManager = new UserManager <User>(userStore, null, null, null, null, null, null, null, null);
                var user        = new User
                {
                    UserName           = "******",
                    NormalizedUserName = "******",
                    Email                = "*****@*****.**",
                    NormalizedEmail      = "*****@*****.**",
                    PhoneNumber          = "+111111111111",
                    EmailConfirmed       = true,
                    PhoneNumberConfirmed = true,
                    SecurityStamp        = Guid.NewGuid().ToString("D"),
                    LockoutEnabled       = true,
                };
                string password = "******";
                //var result = userManager.CreateAsync(user, password).Result;
                var hashed = new PasswordHasher <User>().HashPassword(user, password);
                user.PasswordHash = hashed;
                var result = userStore.CreateAsync(user).Result;
                userStore.AddToRoleAsync(user, RoleEnum.Admin.ToString()).Wait();

                dbContext.SaveChanges();
                scope.Complete();
            }
        }
Exemplo n.º 9
0
 public CustomUserManager(CustomUserStore store)
     : base(store)
 {
     UserValidator = new UserValidator <User, long>(this)
     {
         AllowOnlyAlphanumericUserNames = false
     };
 }
Exemplo n.º 10
0
 public StudentService(IUserManager userManager, ApplicationRoleManager roleManager, IStudentRepository repository, CustomUserStore store, CustomRoleStore roleStore)
 {
     _userManager = userManager;
     _roleManager = roleManager;
     _repository  = repository;
     _store       = store;
     _roleStore   = roleStore;
 }
Exemplo n.º 11
0
        public StudentsController()
        {
            var context = new ApplicationDbContext();

            _repository        = new StudentRepository(context);
            _loggingRepository = new LoggingRepository(context);
            _store             = new CustomUserStore(context);
            _roleStore         = new CustomRoleStore(context);
        }
Exemplo n.º 12
0
        public static ApplicationUserManager Create(IdentityFactoryOptions <ApplicationUserManager> options, IOwinContext context)
        {
            var userStore = new CustomUserStore();
            var manager   = new ApplicationUserManager(userStore);

            // Configure validation logic for usernames


            return(manager);
        }
Exemplo n.º 13
0
        private static CustomUserManage GetManager()
        {
            var dbContext = new LocalDbContext.LocalDb();
            var userStore = new CustomUserStore(dbContext);

            //var userStore = new UserStore<IdentityUser>();

            //var a = new CustomUserManage(userStore);
            return(new CustomUserManage(userStore));
        }
Exemplo n.º 14
0
        public static void InitializeData(TrueMoneyContext context)
        {
            // seed users and roles
            // http://stackoverflow.com/questions/19280527/mvc5-seed-users-and-roles
            var roleStore   = new CustomRoleStore(context);
            var roleManager = new RoleManager <CustomRole, int>(roleStore);

            roleManager.Create(new CustomRole {
                Name = RoleNames.Admin
            });
            roleManager.Create(new CustomRole {
                Name = RoleNames.User
            });

            var userStore   = new CustomUserStore(context);
            var userManager = new UserManager <User, int>(userStore);

            var users = GenerateUsers();

            foreach (var user in users)
            {
                userManager.Create(user);
                userManager.AddToRole(user.Id, RoleNames.User);
            }

            var admin = new User
            {
                Email         = "*****@*****.**",
                UserName      = "******",
                PasswordHash  = new PasswordHasher().HashPassword("123123"),
                SecurityStamp = Guid.NewGuid().ToString(),
                FirstName     = "Admin",
                LastName      = "Администратор",
                CardNumber    = "-",
            };

            userManager.Create(admin);
            userManager.AddToRole(admin.Id, RoleNames.Admin);
            context.SaveChanges();

            // seed other stuff

            users[0].Deals = GenerateDealsWithOneOverdueInProgress(users.Where(x => x != users[0] && x.IsActive).ToList(), users[0]);
            users[1].Deals = GenerateDealsWithOneOpen(users.Where(x => x != users[1] && x.IsActive).ToList(), users[1]);
            users[2].Deals = GenerateDealsWithOneWaitForApprove(users.Where(x => x != users[2] && x.IsActive).ToList(), users[2]);
            users[3].Deals = GenerateDealsWithOneWaitForLoan(users.Where(x => x != users[3] && x.IsActive).ToList(), users[3]);

            foreach (var item in users.Skip(5))
            {
                item.Deals = GenerateDealsWithOneOpen(users.Where(x => x != item).ToList(), item);
            }

            context.SaveChanges();
        }
Exemplo n.º 15
0
        public StudentsController(IStudentRepository studentRepository, ILoggingRepository loggingRepository, IUserManager userManager)
        {
            _repository        = studentRepository;
            _loggingRepository = loggingRepository;
            this.userManager   = userManager;

            var context = new ApplicationDbContext();

            _store     = new CustomUserStore(context);
            _roleStore = new CustomRoleStore(context);
        }
Exemplo n.º 16
0
        internal static void Create(MedSimDbContext context)
        {
#if !DEBUG
            throw new NotImplementedException("CreateAdmin.Create should not be being used in a production environment - security changes required");
            
#endif
            if (!context.Roles.Any())
            {
                var roleStore = new RoleStore<AspNetRole,Guid,AspNetUserRole>(context);
                var roleManager = new RoleManager<AspNetRole,Guid>(roleStore);
                var role = new AspNetRole
                {
                    Id = Guid.NewGuid(),
                    Name = RoleConstants.AccessAllData
                };
                roleManager.Create(role);
                role = new AspNetRole
                {
                    Id = Guid.NewGuid(),
                    Name = RoleConstants.AccessInstitution
                };
                roleManager.Create(role);
                role = new AspNetRole
                {
                    Id = Guid.NewGuid(),
                    Name = RoleConstants.SiteAdmin
                };
                roleManager.Create(role);

                var userStore = new CustomUserStore(context);
                var userManager = new ApplicationUserManager(userStore);

                foreach(var user in context.Users.Where(u=>u.Department.Institution.Name== "Starship").ToList())
                {
                    var result = userManager.AddPassword(userId: user.Id, password: "******");
                    if (result.Succeeded)
                    {
                        userManager.AddToRole(user.Id, RoleConstants.AccessAllData);
                    }
                    else
                    {
                        throw new DbSeedException(result.Errors);
                    }
                }

            }


        }
Exemplo n.º 17
0
        public void Setup()
        {
            this._appSettingsMock = new Mock <IOptions <AppSettings> >();
            this._appSettingsMock.Setup(q => q.Value.SecretKey).Returns("just_some_secret_big_key_value");

            var options             = new DbContextOptions <SampleDataBaseContext>();
            var dbContextMock       = new Mock <SampleDataBaseContext>(options);
            var userStore           = new CustomUserStore(dbContextMock.Object);
            var userManager         = new UserManager <User>(userStore, null, null, null, null, null, null, null, null);
            var httpContextAccessor = new HttpContextAccessor();
            var unitOfWorkMock      = new Mock <IUnitOfWork>();

            unitOfWorkMock.Setup(q => q.BeginTransactionAsync(It.IsAny <string>()))
            .Callback <string>(q => unitOfWorkMock.Setup(x => x.GetTransactionName()).Returns(q));
            this._service = new AuthService(this._appSettingsMock.Object, userManager, httpContextAccessor, unitOfWorkMock.Object);
        }
Exemplo n.º 18
0
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                var dbContext   = new SampleDataBaseContext(new DbContextOptions <SampleDataBaseContext>());
                var userStore   = new CustomUserStore(dbContext);
                var userManager = new UserManager <User>(userStore, null, null, null, null, null, null, null, null);
                var user        = userManager.FindByNameAsync("Sarah").Result;
                var claims      = new List <Claim>
                {
                    new Claim(ClaimTypes.System, "auth;crud;cqrs"),
                };
                userManager.AddClaimsAsync(user, claims).Wait();

                dbContext.SaveChanges();
                scope.Complete();
            }
        }
        public HttpResponseMessage update(int userid)
        {
            var userstore = new CustomUserStore(new ApplicationDbContext());
            var manager   = new ApplicationUserManager(userstore);

            ApplicationUser user = manager.FindById(userid);

            /*
             * // Update it with the values from the view model
             * user.Name = model.Name;
             * user.Surname = model.Surname;
             * user.UserName = model.UserName;
             * user.Email = model.Email;
             * user.PhoneNumber = model.PhoneNumber;
             * user.PasswordHash = checkUser.PasswordHash;
             * manager.Update(user);
             */
            return(this.Request.CreateResponse(HttpStatusCode.OK, IdentityResult.Success));
        }
Exemplo n.º 20
0
        private static void SeedUsers(DataContext context)
        {
            var store       = new CustomUserStore(context);
            var userManager = new AccountUserManager(store);

            var user1 = new UserAccount {
                UserName = "******", Email = "*****@*****.**"
            };
            var user2 = new UserAccount {
                UserName = "******", Email = "*****@*****.**"
            };

            var profile1 = new Profile {
                Name         = "Jar Jar Binks",
                Age          = 30, Location = "Naboo",
                SearchingFor = "Female",
                Gender       = "Male",
                UserPhoto    = null,
                Description  = "Something about me..",
                Visible      = Visible.Yes,
                UserAccount  = user1
            };

            var profile2 = new Profile
            {
                Name         = "Leia Organa",
                Age          = 45,
                Location     = "Alderaan",
                SearchingFor = "Male",
                Gender       = "Female",
                UserPhoto    = null,
                Description  = "Something about me..",
                Visible      = Visible.Yes,
                UserAccount  = user2
            };

            userManager.CreateAsync(user1, "User1!").Wait();
            userManager.CreateAsync(user2, "User2!").Wait();

            context.Profiles.Add(profile1);
            context.Profiles.Add(profile2);
        }
Exemplo n.º 21
0
        protected override void Seed(Reporting.Models.ApplicationDbContext context)
        {
            if (!context.Roles.Any(r => r.Id == (int)Roles.Admin))
            {
                new RoleManager <CustomRole, int>(new CustomRoleStore(context)).Create(new CustomRole()
                {
                    Id = 1, Name = "Administrador"
                });
            }

            if (!context.Roles.Any(r => r.Id == (int)Roles.User))
            {
                new RoleManager <CustomRole, int>(new CustomRoleStore(context)).Create(new CustomRole()
                {
                    Id = 2, Name = "User"
                });
            }

            if (!context.Users.Any(u => u.Email == "*****@*****.**"))
            {
                var userStore   = new CustomUserStore(context);
                var userManager = new ApplicationUserManager(userStore);
                var res         = userManager.Create(new ApplicationUser()
                {
                    Email = "*****@*****.**", UserName = "******", FirstName = "Ignacio", LastName = "Tata", CellPhone = "1124515363"
                }, "secret");

                if (res.Succeeded)
                {
                    var userAdmin = context.Users.First(u => u.Email == "*****@*****.**");
                    userAdmin.Roles.Add(new CustomUserRole()
                    {
                        UserId = userAdmin.Id, RoleId = (int)Roles.Admin
                    });
                }

                context.SaveChanges();
            }
        }
        public HttpResponseMessage removeAll(int userid, String newpass)
        {
            var userstore = new CustomUserStore(new ApplicationDbContext());
            var manager   = new ApplicationUserManager(userstore);

            PasswordValidator p = new PasswordValidator {
                RequiredLength = 8
            };
            var passwordResult = p.ValidateAsync(newpass);

            if (!passwordResult.Result.Succeeded)
            {
                return(this.Request.CreateResponse(HttpStatusCode.OK, passwordResult));
            }

            var             newPasswordHash = manager.PasswordHasher.HashPassword(newpass);
            ApplicationUser cUser           = manager.FindById(userid);

            userstore.SetPasswordHashAsync(cUser, newPasswordHash);
            userstore.UpdateAsync(cUser);
            return(this.Request.CreateResponse(HttpStatusCode.OK, IdentityResult.Success));
        }
Exemplo n.º 23
0
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                var dbContext   = new SampleDataBaseContext(new DbContextOptions <SampleDataBaseContext>());
                var userStore   = new CustomUserStore(dbContext);
                var userManager = new UserManager <User>(userStore, null, null, null, null, null, null, null, null);
                var user        = new User
                {
                    UserName           = "******",
                    NormalizedUserName = "******",
                    Email                = "*****@*****.**",
                    NormalizedEmail      = "*****@*****.**",
                    PhoneNumber          = null,
                    EmailConfirmed       = true,
                    PhoneNumberConfirmed = false,
                    SecurityStamp        = Guid.NewGuid().ToString("D"),
                    LockoutEnabled       = true,
                };
                string password = "******";
                var    hashed   = new PasswordHasher <User>().HashPassword(user, password);
                user.PasswordHash = hashed;
                var result = userStore.CreateAsync(user).Result;
                userStore.AddToRoleAsync(user, RoleEnum.Member.ToString()).Wait();
                var claims = new List <Claim>
                {
                    new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                    new Claim(ClaimTypes.Name, user.UserName),
                    new Claim(ClaimTypes.System, "crud"),
                };
                userManager.AddClaimsAsync(user, claims).Wait();

                dbContext.SaveChanges();
                scope.Complete();
            }
        }
Exemplo n.º 24
0
 public HomeController(IBusinessService organisationService, UserManager <User> manager, CustomUserStore store)
 {
     _organisationService = organisationService;
     _userManager         = manager;
     _userStore           = store;
 }
Exemplo n.º 25
0
        public static void Seed(MedSimDbContext context)
        {
#if !DEBUG
            throw new NotImplementedException("this should not be being used in a production environment - security changes required");
            
#endif
            try
            {
                if (!context.Roles.Any())
                {
                    //not in production
                    //context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction,
                    //    "alter database [" + context.Database.Connection.Database + "] set single_user with rollback immediate");
                    //
                    var roleStore = new RoleStore<AspNetRole, Guid, AspNetUserRole>(context);
                    var roleManager = new RoleManager<AspNetRole, Guid>(roleStore);
                    var role = new AspNetRole
                    {
                        Id = Guid.NewGuid(),
                        Name = RoleConstants.Admin
                    };
                    roleManager.Create(role);
                }

                if (!context.Users.Any())
                {
                    var userStore = new CustomUserStore(context);
                    var userManager = new ApplicationUserManager(userStore);

                    var user = new AspNetUser
                    {
                        Email = "*****@*****.**",
                        UserName = "******"
                    };
                    var result = userManager.Create(user, password: "******");
                    if (result.Succeeded)
                    {
                        userManager.AddToRole(user.Id, RoleConstants.Admin);
                    }
                    else
                    {
                        throw new DbSeedException(result.Errors);
                    }
                }
            }
            catch (DbEntityValidationException ex)
            {
                // Retrieve the error messages as a list of strings.
                var errorMessages = ex.EntityValidationErrors
                        .SelectMany(x => x.ValidationErrors)
                        .Select(x => x.ErrorMessage);

                // Join the list to a single string.
                var fullErrorMessage = string.Join("; ", errorMessages);

                // Combine the original exception message with the new one.
                var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                // Throw a new DbEntityValidationException with the improved exception message.
                throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
            }
        }
Exemplo n.º 26
0
 public ApplicationUserManager(CustomUserStore store)
     : base(store)
 {
 }
Exemplo n.º 27
0
        private void SeedUsers(ApplicationDbContext ctx)
        {
            //Tests for adding users!
            //TODO: These are for test purposes. Remove all for in-production except admins
            var testUsers = new List <string> {
                "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**"
            };

            var userDetails = new System.Collections.Generic.Dictionary <string, UserInfo>();

            userDetails.Add("*****@*****.**", new UserInfo {
                FirstName = "احسان", LastName = "عبدخدایی", NationalID = "0946940071"
            });
            userDetails.Add("*****@*****.**", new UserInfo {
                FirstName = "مهران", LastName = "علیزاده", NationalID = "1234567890"
            });
            userDetails.Add("*****@*****.**", new UserInfo {
                FirstName = "هما", LastName = "صادقی", NationalID = "1234567890"
            });

            TestName[] testFirstNames =
            {
                new TestName("هانیه", "honey",  "f"),
                new TestName("زهرا",  "z",      "f"),
                new TestName("مریم",  "m",      "f"),
                new TestName("لیلا",  "lily",   "f"),
                new TestName("شیلا",  "sh",     "f"),
                new TestName("زهره",  "zohreh", "f"),
                new TestName("سمیرا", "samira", "f"),
                new TestName("نگین",  "negin",  "f"),
                new TestName("نفیسه", "nafis",  "f"),
                new TestName("نگار",  "negar",  "f")
            };

            TestName[] testLastNames =
            {
                new TestName("تقی زاده", "taghi"),
                new TestName("حاتمی",    "hatami"),
                new TestName("بحرانی",   "bahrani"),
                new TestName("رشیدی",    "rashidi"),
                new TestName("ملتی",     "mellati"),
                new TestName("کرمی",     "karami"),
                new TestName("سروستانی", "sarvestani"),
                new TestName("رجبی",     "rajabi"),
                new TestName("رضوی",     "razavi"),
                new TestName("حق پرست",  "hagh"),
                new TestName("وطن دوست", "vatan"),
                new TestName("محمدی",    "mohammadi")
            };

            foreach (var firstName in testFirstNames)
            {
                foreach (var lastName in testLastNames)
                {
                    var username = firstName.Name_en + lastName.Name_en + "@gmx.com";
                    testUsers.Add(username);
                    userDetails.Add(username, new UserInfo {
                        FirstName = firstName.Name, LastName = lastName.Name, NationalID = "1234567890"
                    });
                }
            }

            Random rnd = new Random();

            testUsers = testUsers.OrderBy(x => rnd.Next()).ToList();

            var store   = new CustomUserStore(ctx);
            var manager = new UserManager <ApplicationUser, int>(store);

            //Add or Update Infoes

            foreach (var username in testUsers)
            {
                var details = userDetails[username];
                var user    = new ApplicationUser {
                    Email = username, UserName = username, UserInfo = details
                };
                var thisuser = manager.FindByEmail(username);

                if (thisuser == null)
                {
                    manager.Create(user, "angel123");
                }
                else
                {
                    thisuser.UserInfo         = details;
                    ctx.Entry(thisuser).State = EntityState.Modified;
                }
            }
            ctx.SaveChangesAsync();
        }
Exemplo n.º 28
0
 public BusinessRepositoryTests()
 {
     _orgRepo  = new BusinessRepository(new SqlConnectionFactory(ConfigurationManager.ConnectionStrings["Default"].ConnectionString));
     userStore = new CustomUserStore();
 }
Exemplo n.º 29
0
        protected override void Seed(ITHelpDeskSystem.Models.ApplicationDbContext context)
        {
            string[] roles = { "Admin", "ITStaff", "Staff", "ITManager" };

            string adminEmail    = "*****@*****.**";
            string adminUserName = "******";
            string adminPassword = "******";

            // Create roles
            var roleStore   = new CustomRoleStore(context);
            var roleManager = new RoleManager <CustomRole, int>(roleStore);

            foreach (var role in roles)
            {
                if (!roleManager.RoleExists(role))
                {
                    roleManager.Create(new CustomRole {
                        Name = role
                    });
                }
            }

            // Define admin user
            var userStore   = new CustomUserStore(context);
            var userManager = new ApplicationUserManager(userStore);

            //TODO Change the type of the admin user
            var admin = new ApplicationUser
            {
                UserName       = adminUserName,
                Email          = adminEmail,
                EmailConfirmed = true,
                LockoutEnabled = false
            };

            // Create admin user
            if (userManager.FindByName(admin.UserName) == null)
            {
                userManager.Create(admin, adminPassword);
            }

            // Add admin user to admin role
            // roles[0] is "Admin"
            var user = userManager.FindByName(admin.UserName);

            if (!userManager.IsInRole(user.Id, roles[0]))
            {
                userManager.AddToRole(admin.Id, roles[0]);
            }

            //Adding IT Staff
            var ITstaffs = new List <ITStaff>
            {
                new ITStaff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Jack", LastName = "White", JobTitle = "User support ", Department = "IT Department", ExtensionNumber = "544", Mobile = "0553334445", OfficeNumber = "B17", Speciality = " ", StartingDate = null, Position = " ", IsManager = false,
                },

                new ITStaff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Jane", LastName = "Black", JobTitle = "Network admin", Department = "IT Department", ExtensionNumber = "577", Mobile = "0553334447", OfficeNumber = "C04", Speciality = " ", StartingDate = null, Position = " ", IsManager = false,
                },

                new ITStaff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Majid", LastName = "Salem", JobTitle = "SAP specialist", Department = "IT Department", ExtensionNumber = "322", Mobile = "0553334448", OfficeNumber = "C05", Speciality = " ", StartingDate = null, Position = " ", IsManager = false,
                },

                new ITStaff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Mark", LastName = "Brown", JobTitle = "System engineer", Department = "IT Department", ExtensionNumber = "322", Mobile = "0553334448", OfficeNumber = "C06", Speciality = " ", StartingDate = null, Position = " ", IsManager = false,
                },

                new ITStaff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Ali", LastName = "Kareem", JobTitle = "Factory technician", Department = "IT Department", ExtensionNumber = "322", Mobile = "0553334448", OfficeNumber = "C06", Speciality = " ", StartingDate = null, Position = " ", IsManager = false,
                },


                new ITStaff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Mike", LastName = "Smith", JobTitle = "IT manager", Department = "IT Department", ExtensionNumber = "741", Mobile = "0553334448", OfficeNumber = "A13", Speciality = " ", StartingDate = null, Position = " ", IsManager = true,
                },
            };

            foreach (var ITstaff in ITstaffs)
            {
                if (userManager.FindByName(ITstaff.UserName) == null)
                {
                    userManager.Create(ITstaff, "123456");
                }

                var usertemp = userManager.FindByName(ITstaff.UserName);
                if (!userManager.IsInRole(usertemp.Id, roles[1]) && ITstaff.IsManager == false)
                {
                    userManager.AddToRole(usertemp.Id, roles[1]);
                }
                if (ITstaff.IsManager == true)
                {
                    userManager.AddToRole(usertemp.Id, roles[3]);
                }
            }

            //Adding IT Help Desk system admimn
            var IThelpDeskAdmin = new List <ITHelpDeskAdmin>
            {
                new ITHelpDeskAdmin {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Wiliam", LastName = "Allen", JobTitle = "Help desk admin", Department = "IT Department", ExtensionNumber = " ", Mobile = " ", OfficeNumber = " ", Speciality = " ", StartingDate = null, Position = " ", IsManager = false, Degree = "",
                },
            };

            foreach (var ITHelpDeskAdmin in IThelpDeskAdmin)
            {
                if (userManager.FindByName(ITHelpDeskAdmin.UserName) == null)
                {
                    userManager.Create(ITHelpDeskAdmin, "123456");
                }

                var usertemp = userManager.FindByName(ITHelpDeskAdmin.UserName);

                if (!userManager.IsInRole(usertemp.Id, roles[0]))
                {
                    userManager.AddToRole(usertemp.Id, roles[0]);
                }
            }

            //Adding Staff
            var Staffs = new List <Staff>
            {
                new Staff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Khalid", LastName = "Saad", JobTitle = "Recruiter", Department = "HR", ExtensionNumber = " ", Mobile = " ", OfficeNumber = " ", StaffLevel = " ", ManagerialPosition = ManagerialPosition.Regular,
                },

                new Staff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Suzan", LastName = "Adam", JobTitle = "Brand manager", Department = "Marketing", ExtensionNumber = " ", Mobile = " ", OfficeNumber = " ", StaffLevel = " ", ManagerialPosition = ManagerialPosition.High,
                },

                new Staff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Ahmad", LastName = "Ali", JobTitle = "HR manager", Department = "HR", ExtensionNumber = " ", Mobile = " ", OfficeNumber = " ", StaffLevel = " ", ManagerialPosition = ManagerialPosition.High,
                },

                new Staff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Malek", LastName = "Ahmad", JobTitle = "Sales", Department = "Marketing", ExtensionNumber = " ", Mobile = " ", OfficeNumber = " ", StaffLevel = " ", ManagerialPosition = ManagerialPosition.High,
                },

                new Staff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Sara", LastName = "Murad", JobTitle = "Sales", Department = "Marketing", ExtensionNumber = " ", Mobile = " ", OfficeNumber = " ", StaffLevel = " ", ManagerialPosition = ManagerialPosition.High,
                },

                new Staff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Salam", LastName = "Abdulrahman", JobTitle = "Sales", Department = "Marketing", ExtensionNumber = " ", Mobile = " ", OfficeNumber = " ", StaffLevel = " ", ManagerialPosition = ManagerialPosition.High,
                },

                new Staff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Masood", LastName = "Khan", JobTitle = "Sales", Department = "Marketing", ExtensionNumber = " ", Mobile = " ", OfficeNumber = " ", StaffLevel = " ", ManagerialPosition = ManagerialPosition.High,
                },

                new Staff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Muhannad", LastName = "Droobi", JobTitle = "Sales", Department = "Marketing", ExtensionNumber = " ", Mobile = " ", OfficeNumber = " ", StaffLevel = " ", ManagerialPosition = ManagerialPosition.High,
                },

                new Staff {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Sana", LastName = "Akram", JobTitle = "Sales", Department = "Marketing", ExtensionNumber = " ", Mobile = " ", OfficeNumber = " ", StaffLevel = " ", ManagerialPosition = ManagerialPosition.High,
                },
            };

            foreach (var staff in Staffs)
            {
                if (userManager.FindByName(staff.UserName) == null)
                {
                    userManager.Create(staff, "123456");
                }

                var usertemp = userManager.FindByName(staff.UserName);
                if (!userManager.IsInRole(usertemp.Id, roles[2]))
                {
                    userManager.AddToRole(usertemp.Id, roles[2]);
                }
            }

            var categories = new List <Category>
            {
                new Category {
                    CategoryName = "Hardware", CategoryDescription = "No description", ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff").Id,
                },

                new Category {
                    CategoryName = "Software", CategoryDescription = "No description", ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff1").Id
                },

                new Category {
                    CategoryName = "SAP", CategoryDescription = "No description", ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff1").Id
                },

                new Category {
                    CategoryName = "WiFi", CategoryDescription = "No description", ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff").Id,
                },

                new Category {
                    CategoryName = "Printer", CategoryDescription = "No description", ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff1").Id,
                },

                new Category {
                    CategoryName = "Email", CategoryDescription = "No description", ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff1").Id,
                },
            };

            categories.ForEach(s => context.Categories.AddOrUpdate(p => p.CategoryName, s));
            context.SaveChanges();

            var tickets = new List <Ticket>
            {
                new Ticket {
                    Subject = "Issue", IncidentDescription = "Cannot log in to email", CategoryId = categories.Single(d => d.CategoryName == "Software").CategoryId, Status = TicketStatus.Closed, CreationDate = DateTime.Now, TicketOwner = Staffs.Single(m => m.UserName == "staff").Id, CreatedBy = Staffs.Single(m => m.UserName == "staff").Id, IncidentSolution = "Follow the steps of resetting password", Priority = TicketPriority.Critical, ResultionDate = DateTime.Now, DueDate = DateTime.Now.AddDays(1), CreatedByName = Staffs.Single(m => m.UserName == "staff").FullName,
                },
            };

            tickets.ForEach(s => context.Tickets.AddOrUpdate(p => p.Subject, s));
            context.SaveChanges();

            var knowledgeBase = new List <KnowledgeBase>
            {
                new KnowledgeBase {
                    CreatedBy = ITstaffs.Single(d => d.UserName == "itstaff1").Id, ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff1").Id, Topic = "Software", CreationDate = DateTime.Now, IncidentTitle = "Uninstall software", IncidentDescription = "For windows users facing any troubles while uninstalling a software", SolutionDescription = "Select a program you wish to uninstall from Control Panel and click either Remove, or Change/Remove"
                },

                new KnowledgeBase {
                    CreatedBy = ITstaffs.Single(d => d.UserName == "itstaff").Id, ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff").Id, Topic = "Hardware", CreationDate = DateTime.Now, IncidentTitle = "Connect to projector", IncidentDescription = "Mac users cannot connect to projector", SolutionDescription = "Connect the video cable then select System Preferences and click the Detect Displays"
                },

                new KnowledgeBase {
                    CreatedBy = ITstaffs.Single(d => d.UserName == "itstaff2").Id, ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff2").Id, Topic = "WiFi", CreationDate = DateTime.Now, IncidentTitle = "Connect to WiFi", IncidentDescription = "Connecting mobile devices to WiFi", SolutionDescription = "Go to your device settings, WiFi options then enter your username and password"
                },

                new KnowledgeBase {
                    CreatedBy = ITstaffs.Single(d => d.UserName == "itstaff").Id, ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff").Id, Topic = "Booting", CreationDate = DateTime.Now, IncidentTitle = "Booting error from disck", IncidentDescription = "Error disck at booting", SolutionDescription = "If you can hear a repeated scraping noise, power off the computer as soon as possible, as there may be a physical problem with the hard disk and you may lose data."
                },


                new KnowledgeBase {
                    CreatedBy = ITstaffs.Single(d => d.UserName == "itstaff").Id, ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff1").Id, Topic = "Connectivity", CreationDate = DateTime.Now, IncidentTitle = "USB not recognized", IncidentDescription = "USB not recognized when blugged in to computer", SolutionDescription = "This method resolves issues where the currently loaded USB driver has become unstable or corrupt. Select Start, type Device Manager in the Search box Select Device Manager from the returned list. Select Disk Drives from the list of hardware Press and hold (or right-click) the USB external hard drive with the issue, and select Uninstall. After the hard drive is uninstalled, unplug the USB cable. Wait for 1 minute and then reconnect the USB cable. The driver should automatically load Check for the USB drive in Windows Explorer"
                },

                new KnowledgeBase {
                    CreatedBy = ITstaffs.Single(d => d.UserName == "itstaff").Id, ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff1").Id, Topic = "Printer", CreationDate = DateTime.Now, IncidentTitle = "Printer jammed", IncidentDescription = "Printer jammed when printing more than 50 pages", SolutionDescription = "Removing a rear access panel Locate the knob or access tab on the back of the printer by or on the panel itself. If it's a knob, move it to the Unlocked position. Remove the panel and carefully pull out the jammed paper. Locate and clear away any small bits of paper that remain. Replace and secure the rear panel. Remove the two-sided printing accessory to clear the paper jam Press both RELEASE buttons on either end of the module at the same time and remove it."
                },

                new KnowledgeBase {
                    CreatedBy = ITstaffs.Single(d => d.UserName == "itstaff").Id, ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff1").Id, Topic = "Email", CreationDate = DateTime.Now, IncidentTitle = "Connot login to email", IncidentDescription = "Connot log in to email feom this computer", SolutionDescription = "Clear the cache and remove cookies only from websites that cause problems. Clear the Cache: Edit > Preferences > Advanced > Network > Cached Web Content: Clear Now, Remove Cookies from sites causing problems: Edit > Preferences > Privacy >  Use custom settings for history  > Cookies:  Show Cookies."
                },

                new KnowledgeBase {
                    CreatedBy = ITstaffs.Single(d => d.UserName == "itstaff").Id, ITStaffId = ITstaffs.Single(d => d.UserName == "itstaff1").Id, Topic = "Software", CreationDate = DateTime.Now, IncidentTitle = "Deleting browse history", IncidentDescription = "Connot log in to email feom this computer", SolutionDescription = "On your computer, open Chrome. At the top right, click More  . Click History   History. On the left, click Clear browsing data. A box will appear. From the drop-down menu, select how much history you want to delete. To clear everything, select the beginning of time. Check the boxes for the info you want Chrome to clear, including “browsing history."
                },
            };

            knowledgeBase.ForEach(s => context.KnowledgeBases.AddOrUpdate(p => p.Topic, s));
            context.SaveChanges();

            var criteria = new List <Criterion>
            {
                new Criterion {
                    CreationDate = DateTime.Now, ActiveCriterion = true, CriterionDescription = "Waiting time", EditionDate = DateTime.Now
                },
                new Criterion {
                    CreationDate = DateTime.Now, ActiveCriterion = true, CriterionDescription = "Effectiveness of the solution", EditionDate = DateTime.Now
                },
                new Criterion {
                    CreationDate = DateTime.Now, ActiveCriterion = true, CriterionDescription = "Friendliness of IT staff", EditionDate = DateTime.Now
                },
                new Criterion {
                    CreationDate = DateTime.Now, ActiveCriterion = true, CriterionDescription = "Overall satisfaction", EditionDate = DateTime.Now
                },
            };

            criteria.ForEach(s => context.Criteria.AddOrUpdate(p => p.CriterionDescription, s));
            context.SaveChanges();
        }
Exemplo n.º 30
0
        protected override void Seed(Mishavad_API.Models.ApplicationDbContext context)
        {
            CheckReseedInvoiceandAccountIdentity(context);

            //TODO: IF you want seeding to work remove this!
            return;

            // TODO: Remove this in-production
            // /*
            try
            {
                using (var ctx = new Mishavad_API.Models.ApplicationDbContext())
                {
                    using (var writer = new XmlTextWriter(@"D:/My Documents/MishavadProjects/Mishavad_API/Mishavad_API/Model.edmx", System.Text.Encoding.Default))
                    {
                        EdmxWriter.WriteEdmx(ctx, writer);
                    }
                }
            }
            catch { }
            //*/

            Helpers.EncryptionService.LoadBinaryFile("D:/My Documents/MishavadProjects/Mishavad_API/Mishavad_API/App_Data/keys.mdb");

            context.FileServers.AddOrUpdate(c => c.Id, new FileServer {
                Id = 1, ServerIP = "37.220.11.235"
            });

            context.CampaignCategories.AddOrUpdate(c => c.Id, new CampaignCategory {
                Id = 1, Name = "صنعت و فناوری"
            },
                                                   new CampaignCategory {
                Id = 2, Name = "آموزش و پژوهش"
            },
                                                   new CampaignCategory {
                Id = 3, Name = "خیریه و اجتماعی"
            });

            context.ProjectStages.AddOrUpdate(c => c.Id, new ProjectStage {
                Id = 1, Name = "پژوهش مقدماتی"
            },
                                              new ProjectStage {
                Id = 2, Name = "تولید آزمایشی"
            },
                                              new ProjectStage {
                Id = 3, Name = "تولید نهایی"
            });

            //Add Cities
            if (context.Cities.Count() == 0)
            {
                context.Database.ExecuteSqlCommand(File.ReadAllText("D:/My Documents/MishavadProjects/Mishavad_API/Mishavad_API/MySqlQueries/SQLQuery1_AddCities.sql"));
            }

            //TODO: Add ISO 3166-2:IR province codes
            var prov_codes = @"[
                                 {'code': 'IR-03', name: 'اردبیل'},
                                 {'code': 'IR-32', name: 'البرز'},
                                 {'code': 'IR-02', name: 'آذربایجان غربی'},
                                 {'code': 'IR-01', name: 'آذربایجان شرقی'},
                                 {'code': 'IR-06', name: 'بوشهر'},
                                 {'code': 'IR-08', name: 'چهارمحال و بختیاری'},
                                 {'code': 'IR-04', name: 'اصفهان'},
                                 {'code': 'IR-14', name: 'فارس'},
                                 {'code': 'IR-19', name: 'گیلان'},
                                 {'code': 'IR-27', name: 'گلستان'},
                                 {'code': 'IR-24', name: 'همدان'},
                                 {'code': 'IR-23', name: 'هرمزگان'},
                                 {'code': 'IR-05', name: 'ایلام'},
                                 {'code': 'IR-15', name: 'کرمان'},
                                 {'code': 'IR-17', name: 'کرمانشاه'},
                                 {'code': 'IR-29', name: 'خراسان جنوبی'},
                                 {'code': 'IR-30', name: 'خراسان رضوی'},
                                 {'code': 'IR-31', name: 'خراسان شمالی'},
                                 {'code': 'IR-10', name: 'خوزستان'},
                                 {'code': 'IR-18', name: 'کهگیلویه و بویراحمد'},
                                 {'code': 'IR-16', name: 'کردستان'},
                                 {'code': 'IR-20', name: 'لرستان'},
                                 {'code': 'IR-22', name: 'مرکزی'},
                                 {'code': 'IR-21', name: 'مازندران'},
                                 {'code': 'IR-28', name: 'قزوین'},
                                 {'code': 'IR-26', name: 'قم'},
                                 {'code': 'IR-12', name: 'سمنان'},
                                 {'code': 'IR-13', name: 'سیستان و بلوچستان'},
                                 {'code': 'IR-07', name: 'تهران'},
                                 {'code': 'IR-25', name: 'یزد'},
                                 {'code': 'IR-11', name: 'زنجان'}
                                ]";

            if (context.Users.Count() == 0)
            {
                SeedUsers(context);
            }

            var store   = new CustomUserStore(context);
            var manager = new UserManager <ApplicationUser, int>(store);

            var admins = context.Users.Where(u => u.Email == "*****@*****.**").ToList();

            //Add Claims for Admins:
            foreach (var admin in admins)
            {
                if (!admin.Claims.Any(c => (c.ClaimType == ClaimTypes.Role && c.ClaimValue == "TopLevelAdmin")))
                {
                    manager.AddClaim(admin.Id, new Claim(ClaimTypes.Role, "TopLevelAdmin"));
                }
            }

            /*
             * //Remove current info
             * if (query.Any())
             * {
             * foreach (var myuser in query.ToList())
             * {
             *
             *     //Remove any user infoes when seeding
             *     var myinf = context.UserInfos.Find(myuser.Id);
             *     if (myinf != null)
             *         context.UserInfos.Remove(myinf);
             *
             *     // context.Users.Remove(myuser);
             *     // context.SaveChangesAsync();
             * }
             * }
             * context.SaveChangesAsync();
             *
             */
            Debug(context, "Seeding Campaigns...");
            var ehsabd_user_Id = manager.FindByEmail("*****@*****.**").Id;

            SeedCampaigns(context, ehsabd_user_Id);
            Debug(context, "Seeding Rewards...");
            SeedRewards(context);
            RemoveRedundantGiftFunds(context);
            context.SaveChangesAsync();
        }
Exemplo n.º 31
0
 public TeacherService(ApplicationUserManager userManager, ITeacherRepository repository, CustomUserStore store)
 {
     _userManager = userManager;
     _repository  = repository;
     _store       = store;
 }
Exemplo n.º 32
0
        protected override void Seed(ConsumerPanelTestSystemApplication.Models.ApplicationDbContext context)
        {
            //TODO Define roles to add to your app, keep the Admin role first
            string[] roles = { "Admin", "Brand Manager", "Marketing Director", "Requester", "CPT Coordinator", "CRU Manager", "CRU Supervisor", "CRU Member" };

            //TODO Change admin user login information
            string adminEmail    = "*****@*****.**";
            string adminUserName = "******";
            string adminPassword = "******";


            // Create roles
            var roleStore   = new CustomRoleStore(context);
            var roleManager = new RoleManager <CustomRole, int>(roleStore);

            foreach (var role in roles)
            {
                if (!roleManager.RoleExists(role))
                {
                    roleManager.Create(new CustomRole {
                        Name = role
                    });
                }
            }

            // Define admin user
            var userStore   = new CustomUserStore(context);
            var userManager = new ApplicationUserManager(userStore);

            //TODO Change the type of the admin user
            var admin = new ApplicationUser
            {
                UserName       = adminUserName,
                Email          = adminEmail,
                EmailConfirmed = true,
                LockoutEnabled = false
            };

            // Create admin user
            if (userManager.FindByName(admin.UserName) == null)
            {
                userManager.Create(admin, adminPassword);
            }

            // Add admin user to admin role
            // roles[0] is "Admin"
            var user = userManager.FindByName(admin.UserName);

            if (!userManager.IsInRole(user.Id, roles[0]))
            {
                userManager.AddToRole(admin.Id, roles[0]);
            }


            // Add examples of locations.
            var locations = new List <Location>
            {
                new Location {
                    City = "Jeddah", Region = SupervisorRegion.WesternRegion
                },
                new Location {
                    City = "Madina", Region = SupervisorRegion.WesternRegion
                },
                new Location {
                    City = "Riyadh", Region = SupervisorRegion.CentralRegion
                },
                new Location {
                    City = "Dammam", Region = SupervisorRegion.EasternRegion
                },
                new Location {
                    City = "Taif", Region = SupervisorRegion.WesternRegion
                },
                new Location {
                    City = "Khobar", Region = SupervisorRegion.EasternRegion
                },
                new Location {
                    City = "Jubail", Region = SupervisorRegion.EasternRegion
                },
                new Location {
                    City = "Qassim", Region = SupervisorRegion.CentralRegion
                }
            };

            locations.ForEach(s => context.Locations.AddOrUpdate(p => p.City, s));
            context.SaveChanges();


            // Add Marketing Director user.
            var mdUser = new MarketingDirector
            {
                UserName    = "******",
                Email       = "*****@*****.**",
                FirstName   = "Rola",
                LastName    = "Aref",
                PhoneNumber = "0512345678",
                Country     = EmployeeCountry.SaudiArabia,
                City        = EmployeeCity.Dammam,
                Type        = EmployeeType.MarketingDirector,
            };

            userManager.Create(mdUser, "123456");

            var userMD = userManager.FindByName(mdUser.UserName);

            if (!userManager.IsInRole(userMD.Id, roles[2]))
            {
                userManager.AddToRole(mdUser.Id, roles[2]);
            }

            // Add CPT Coordinator user.
            var cptUser = new CPTCoordinator
            {
                UserName    = "******",
                Email       = "*****@*****.**",
                FirstName   = "Carla",
                LastName    = "Attiah",
                PhoneNumber = "0512345678",
                Country     = EmployeeCountry.Lebanon,
                City        = EmployeeCity.Beirut,
                Type        = EmployeeType.CPTCoordinator,
            };

            userManager.Create(cptUser, "123456");

            var userCPT = userManager.FindByName(cptUser.UserName);

            if (!userManager.IsInRole(userCPT.Id, roles[4]))
            {
                userManager.AddToRole(cptUser.Id, roles[4]);
            }

            // Add CRU Manager user.
            var crumUser = new CRUManager
            {
                UserName    = "******",
                Email       = "*****@*****.**",
                FirstName   = "CRUMFN",
                LastName    = "CRUMLN",
                PhoneNumber = "0512345698",
                Country     = EmployeeCountry.SaudiArabia,
                City        = EmployeeCity.Dammam,
                Type        = EmployeeType.CRUManager,
            };

            userManager.Create(crumUser, "123456");

            var userCRUM = userManager.FindByName(crumUser.UserName);

            if (!userManager.IsInRole(userCRUM.Id, roles[5]))
            {
                userManager.AddToRole(crumUser.Id, roles[5]);
            }


            // Add Brand Managers to the database.
            var brandmanagers = new List <BrandManager>
            {
                new BrandManager {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Ehab", LastName = "Mohamed",
                    PhoneNumber = "0513146789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Dammam,
                    Type        = EmployeeType.BrandManager, ProductDivision = BrandManagerProductDivision.FamilyCare
                },
                new BrandManager {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Lama", LastName = "Hafez",
                    PhoneNumber = "0518946789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Dammam,
                    Type        = EmployeeType.BrandManager, ProductDivision = BrandManagerProductDivision.FeminineCare
                },
                new BrandManager {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Maryam", LastName = "Mahfouz",
                    PhoneNumber = "0574146789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Dammam,
                    Type        = EmployeeType.BrandManager, ProductDivision = BrandManagerProductDivision.HouseholdItems
                },
                new BrandManager {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Mahmoud", LastName = "Shawqy",
                    PhoneNumber = "0574145789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Dammam,
                    Type        = EmployeeType.BrandManager, ProductDivision = BrandManagerProductDivision.BabyCare
                }
            };

            foreach (var brandmanager in brandmanagers)
            {
                if (userManager.FindByName(brandmanager.UserName) == null)
                {
                    userManager.Create(brandmanager, "crus123");
                }

                var usertemp = userManager.FindByName(brandmanager.UserName);
                if (!userManager.IsInRole(usertemp.Id, roles[1]))
                {
                    userManager.AddToRole(usertemp.Id, roles[1]);
                }
            }


            // Add CRU Supervisors to the database.
            var crusupervisors = new List <CRUSupervisor>
            {
                new CRUSupervisor {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Manal", LastName = "Mahmoud",
                    PhoneNumber = "0513456789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Dammam,
                    Region      = SupervisorRegion.EasternRegion, Type = EmployeeType.CRUSupervisor
                },
                new CRUSupervisor {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Lamees", LastName = "Gazzaz",
                    PhoneNumber = "0523456654", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Jeddah,
                    Region      = SupervisorRegion.WesternRegion, Type = EmployeeType.CRUSupervisor
                },
                new CRUSupervisor {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Hala", LastName = "Muhammad",
                    PhoneNumber = "0533452589", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Riyadh,
                    Region      = SupervisorRegion.CentralRegion, Type = EmployeeType.CRUSupervisor
                }
            };

            foreach (var crusupervisor in crusupervisors)
            {
                if (userManager.FindByName(crusupervisor.UserName) == null)
                {
                    userManager.Create(crusupervisor, "crus123");
                }

                var usertemp = userManager.FindByName(crusupervisor.UserName);
                if (!userManager.IsInRole(usertemp.Id, roles[6]))
                {
                    userManager.AddToRole(usertemp.Id, roles[6]);
                }
            }


            // Add CRU Members to the database.
            var crumembers = new List <CRUMember>
            {
                new CRUMember {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Hala", LastName = "Farouq",
                    PhoneNumber = "0509637789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Dammam,
                    Region      = SupervisorRegion.WesternRegion, Type = EmployeeType.CRUMember, CRUSupervisorId = 10
                },
                new CRUMember {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Dalal", LastName = "Ahmed",
                    PhoneNumber = "0508547789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Jeddah,
                    Region      = SupervisorRegion.EasternRegion, Type = EmployeeType.CRUMember, CRUSupervisorId = 9
                },
                new CRUMember {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Dalia", LastName = "Rami",
                    PhoneNumber = "0589047789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Riyadh,
                    Region      = SupervisorRegion.CentralRegion, Type = EmployeeType.CRUMember, CRUSupervisorId = 11
                },
            };

            foreach (var crumember in crumembers)
            {
                if (userManager.FindByName(crumember.UserName) == null)
                {
                    userManager.Create(crumember, "crum123");
                }

                var usertemp = userManager.FindByName(crumember.UserName);
                if (!userManager.IsInRole(usertemp.Id, roles[7]))
                {
                    userManager.AddToRole(usertemp.Id, roles[7]);
                }
            }


            //// Add Requesters to the database.
            var requesters = new List <Requester>
            {
                new Requester {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Ramy", LastName = "REQLN",
                    PhoneNumber = "0541236985", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Madina,
                    Department  = Department.RD, Position = "Vice President of Research and Development", Type = EmployeeType.Requester
                },
                new Requester {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "George", LastName = "Khalifa",
                    PhoneNumber = "0509689789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Jeddah,
                    Department  = Department.Production, Position = "Assisstant Production Supervisor", Type = EmployeeType.Requester
                },
                new Requester {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Tony", LastName = "Taleed",
                    PhoneNumber = "0509637019", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Riyadh,
                    Department  = Department.QAQC, Position = "Quality Assurance Head", Type = EmployeeType.Requester
                },
                new Requester {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Sami", LastName = "Shahid",
                    PhoneNumber = "0509685789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Dammam,
                    Department  = Department.Sales, Position = "Regional Sales Supervisor", Type = EmployeeType.Requester
                },
            };

            foreach (var requester in requesters)
            {
                if (userManager.FindByName(requester.UserName) == null)
                {
                    userManager.Create(requester, "req123");
                }

                var usertemp = userManager.FindByName(requester.UserName);
                if (!userManager.IsInRole(usertemp.Id, roles[3]))
                {
                    userManager.AddToRole(usertemp.Id, roles[3]);
                }
            }

            // Add CPT Requests from Requesters to the database.
            var requests = new List <CPTRequest>
            {
                new CPTRequest {
                    RequestTitle    = "Feminine Care Product Campaign", RequestStatus = RequestStatus.BMRequestApproval,
                    Justification   = "We need some market research in the western regions on the perfomance of feminine care products.",
                    ProductDivision = BrandManagerProductDivision.FeminineCare, RequestDate = new DateTime(2018, 1, 5), SubmittedById = 15, LocationId = 1, BReviewRequest = 6
                },

                new CPTRequest {
                    RequestTitle    = "Bambi Jumbo Launch", RequestStatus = RequestStatus.BMRequestApproval, SubmittedById = 15,
                    Justification   = "We need to get national feedback on the regular Bambi performance to evaluate any neccessary changes.",
                    ProductDivision = BrandManagerProductDivision.BabyCare, RequestDate = new DateTime(2018, 02, 10), LocationId = 2, BReviewRequest = 8
                },

                new CPTRequest {
                    RequestTitle    = "Competition Analysis", RequestStatus = RequestStatus.BMRequestApproval,
                    Justification   = "We want to see how Orenex is performaing in the market, particularly within the Eastern region.",
                    ProductDivision = BrandManagerProductDivision.HouseholdItems, RequestDate = new DateTime(2018, 01, 21), SubmittedById = 17, LocationId = 3, BReviewRequest = 7
                },

                new CPTRequest {
                    RequestTitle    = "Sanita Tissue Annual Assessment", RequestStatus = RequestStatus.BMRequestApproval,
                    Justification   = "The annual performance on the Sanita tissue product needs to be assessed for quality purposes.",
                    ProductDivision = BrandManagerProductDivision.FamilyCare, RequestDate = new DateTime(2018, 03, 15), SubmittedById = 16, LocationId = 4, BReviewRequest = 5
                }
            };

            requests.ForEach(s => context.CPTRequests.AddOrUpdate(p => p.RequestTitle, s));
            context.SaveChanges();


            // Add CPT Requests from Brand Managers to the database.
            var BMrequests = new List <CPTRequest>
            {
                new CPTRequest {
                    RequestTitle    = "Feminine Care Market Positioning", RequestStatus = RequestStatus.MDRequestApproval,
                    Justification   = "We need some market research in the western regions on the perfomance of feminine care products.",
                    ProductDivision = BrandManagerProductDivision.FeminineCare, RequestDate = new DateTime(2018, 1, 5), SubmittedById = 6, LocationId = 1, BReview = Review.Approved, BReviewRequest = 6
                },

                new CPTRequest {
                    RequestTitle    = "Bambi Market Analysis", RequestStatus = RequestStatus.MDRequestApproval,
                    Justification   = "We need to get national feedback on the regular Bambi performance to evaluate any neccessary changes.",
                    ProductDivision = BrandManagerProductDivision.BabyCare, RequestDate = new DateTime(2018, 2, 10), SubmittedById = 8, LocationId = 1, BReview = Review.Approved, BReviewRequest = 8
                },

                new CPTRequest {
                    RequestTitle    = "Tracking Tests for new Sanita Aluminum", RequestStatus = RequestStatus.MDRequestApproval,
                    Justification   = "We want to see how Orenex is performing in the market, particularly within the Eastern region.",
                    ProductDivision = BrandManagerProductDivision.HouseholdItems, RequestDate = new DateTime(2018, 1, 21), SubmittedById = 7, LocationId = 7, BReview = Review.Approved, BReviewRequest = 7
                },

                new CPTRequest {
                    RequestTitle    = "Sanita Market Positioning", RequestStatus = RequestStatus.MDRequestApproval,
                    Justification   = "The annual performance on the Sanita tissue product needs to be assessed for quality purposes.",
                    ProductDivision = BrandManagerProductDivision.FamilyCare, RequestDate = new DateTime(2018, 3, 15), SubmittedById = 5, LocationId = 5, BReview = Review.Approved, BReviewRequest = 5
                },

                // Add CPT Requests for CPT Coordinator Index.
                new CPTRequest {
                    RequestTitle = "Sanita Giant Tissues Performance", RequestStatus = RequestStatus.QuestionnaireCreation, Justification = "We need to assess the performance and likability of the Giant Tissues in order to adjust product accordingly.", ProductDivision = BrandManagerProductDivision.FamilyCare, RequestDate = new DateTime(2018, 3, 28), SubmittedById = 15, LocationId = 5, BReview = Review.Approved, BReviewRequest = 5, MReviewRequest = 2, MReview = Review.Approved
                },

                new CPTRequest {
                    RequestTitle = "Bi-Annual Private Assessment", RequestStatus = RequestStatus.QuestionnaireCreation, Justification = "We need updated information on the product line's performance.", ProductDivision = BrandManagerProductDivision.FeminineCare, RequestDate = new DateTime(2018, 2, 28), SubmittedById = 17, LocationId = 1, BReview = Review.Approved, BReviewRequest = 6, MReviewRequest = 2, MReview = Review.Approved
                },

                new CPTRequest {
                    RequestTitle = "New Product Market Research", RequestStatus = RequestStatus.QuestionnaireCreation, Justification = "We need some preliminary research on the market's acceptance of the new product line.", ProductDivision = BrandManagerProductDivision.FeminineCare, RequestDate = new DateTime(2018, 4, 28), SubmittedById = 15, LocationId = 1, BReview = Review.Approved, BReviewRequest = 6, MReviewRequest = 2, MReview = Review.Approved
                },
            };

            BMrequests.ForEach(s => context.CPTRequests.AddOrUpdate(p => p.RequestTitle, s));
            context.SaveChanges();


            // Add questionnaire types.
            var questionnairetypes = new List <QuestionnaireType>
            {
                new QuestionnaireType {
                    QuestionnaireTypeName = "Performance Tracking"
                },
                new QuestionnaireType {
                    QuestionnaireTypeName = "Product Development"
                },
                new QuestionnaireType {
                    QuestionnaireTypeName = "Tracking Tests"
                },
                new QuestionnaireType {
                    QuestionnaireTypeName = "Product Assessment"
                }
            };

            questionnairetypes.ForEach(s => context.QuestionnaireTypes.AddOrUpdate(p => p.QuestionnaireTypeName, s));
            context.SaveChanges();

            // Add questions.
            var questions = new List <Question>
            {
                new Question {
                    QuestionText = "Did the product cause any rashes or discomforts?"
                },
                new Question {
                    QuestionText = "Are you willing to spend a higher price than the standard for this product?"
                },
                new Question {
                    QuestionText = "Are you likely to purchase a competing product?",
                },
                new Question {
                    QuestionText = "Is price is an important factor when making your decision.",
                },
                new Question {
                    QuestionText = "Is quality is an important factor when purchasing a product like this?"
                },

                new Question {
                    QuestionText = "Do you use NAPCO products often? "
                },
                new Question {
                    QuestionText = "Would you say you are satisfied with your experience with the product?"
                },
                new Question {
                    QuestionText = "Do you purchase NAPCO Products frequently?"
                },
                new Question {
                    QuestionText = "How likely is it that you would recommend us to a friend/colleague?"
                },
                new Question {
                    QuestionText = "Was your impression positive of the product after the trial period?"
                },

                new Question {
                    QuestionText = "Have you used this product?"
                },
                new Question {
                    QuestionText = "How willing would you be to try a new product?"
                },
                new Question {
                    QuestionText = "Do sales and discounts affect your purchase of a particular product?"
                },
                new Question {
                    QuestionText = "Have you used this product?"
                },
                new Question {
                    QuestionText = "Are you willing to pay more for higher quality products?"
                },
            };

            questions.ForEach(s => context.Questions.AddOrUpdate(p => p.QuestionText, s));
            context.SaveChanges();


            // Add questions to question types.
            var questiontypes = new List <QuestionType>
            {
                new QuestionType {
                    QuestionID = 1, QuestionnaireTypeID = 3
                },
                new QuestionType {
                    QuestionID = 1, QuestionnaireTypeID = 4
                },
                new QuestionType {
                    QuestionID = 2, QuestionnaireTypeID = 2
                },
                new QuestionType {
                    QuestionID = 2, QuestionnaireTypeID = 4
                },
                new QuestionType {
                    QuestionID = 3, QuestionnaireTypeID = 1
                },
                new QuestionType {
                    QuestionID = 3, QuestionnaireTypeID = 2
                },

                new QuestionType {
                    QuestionID = 4, QuestionnaireTypeID = 1
                },
                new QuestionType {
                    QuestionID = 4, QuestionnaireTypeID = 4
                },
                new QuestionType {
                    QuestionID = 5, QuestionnaireTypeID = 1
                },
                new QuestionType {
                    QuestionID = 5, QuestionnaireTypeID = 4
                },

                new QuestionType {
                    QuestionID = 6, QuestionnaireTypeID = 2
                },
                new QuestionType {
                    QuestionID = 6, QuestionnaireTypeID = 4
                },
                new QuestionType {
                    QuestionID = 7, QuestionnaireTypeID = 1
                },
                new QuestionType {
                    QuestionID = 7, QuestionnaireTypeID = 2
                },
                new QuestionType {
                    QuestionID = 7, QuestionnaireTypeID = 3
                },
                new QuestionType {
                    QuestionID = 7, QuestionnaireTypeID = 4
                },

                new QuestionType {
                    QuestionID = 8, QuestionnaireTypeID = 1
                },
                new QuestionType {
                    QuestionID = 8, QuestionnaireTypeID = 2
                },
                new QuestionType {
                    QuestionID = 8, QuestionnaireTypeID = 3
                },
                new QuestionType {
                    QuestionID = 8, QuestionnaireTypeID = 4
                },

                new QuestionType {
                    QuestionID = 9, QuestionnaireTypeID = 1
                },
                new QuestionType {
                    QuestionID = 9, QuestionnaireTypeID = 2
                },
                new QuestionType {
                    QuestionID = 9, QuestionnaireTypeID = 3
                },
                new QuestionType {
                    QuestionID = 9, QuestionnaireTypeID = 4
                },
                new QuestionType {
                    QuestionID = 10, QuestionnaireTypeID = 3
                },

                new QuestionType {
                    QuestionID = 11, QuestionnaireTypeID = 1
                },
                new QuestionType {
                    QuestionID = 11, QuestionnaireTypeID = 4
                },
                new QuestionType {
                    QuestionID = 12, QuestionnaireTypeID = 3
                },
                new QuestionType {
                    QuestionID = 12, QuestionnaireTypeID = 2
                },
                new QuestionType {
                    QuestionID = 13, QuestionnaireTypeID = 2
                },

                new QuestionType {
                    QuestionID = 13, QuestionnaireTypeID = 4
                },
                new QuestionType {
                    QuestionID = 14, QuestionnaireTypeID = 1
                },
                new QuestionType {
                    QuestionID = 14, QuestionnaireTypeID = 4
                },
                new QuestionType {
                    QuestionID = 15, QuestionnaireTypeID = 2
                },
                new QuestionType {
                    QuestionID = 15, QuestionnaireTypeID = 4
                }
            };

            questiontypes.ForEach(s => context.QuestionTypes.AddOrUpdate(p => new { p.QuestionID, p.QuestionnaireTypeID }, s));
            context.SaveChanges();


            // Add Additional CRU Members to the database.
            var crumembers2 = new List <CRUMember>
            {
                new CRUMember {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Hana", LastName = "Mohammed",
                    PhoneNumber = "0509637789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Jeddah,
                    Region      = SupervisorRegion.WesternRegion, Type = EmployeeType.CRUMember, CRUSupervisorId = 9
                },
                new CRUMember {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Layla", LastName = "Hani",
                    PhoneNumber = "0508547789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Jeddah,
                    Region      = SupervisorRegion.WesternRegion, Type = EmployeeType.CRUMember, CRUSupervisorId = 9
                },
                new CRUMember {
                    UserName    = "******", Email = "*****@*****.**", FirstName = "Sara", LastName = "Ahmed",
                    PhoneNumber = "0589047789", Country = EmployeeCountry.SaudiArabia, City = EmployeeCity.Riyadh,
                    Region      = SupervisorRegion.CentralRegion, Type = EmployeeType.CRUMember, CRUSupervisorId = 11
                },
            };

            foreach (var crumember in crumembers2)
            {
                if (userManager.FindByName(crumember.UserName) == null)
                {
                    userManager.Create(crumember, "crum123");
                }

                var usertemp = userManager.FindByName(crumember.UserName);
                if (!userManager.IsInRole(usertemp.Id, roles[7]))
                {
                    userManager.AddToRole(usertemp.Id, roles[7]);
                }
            }


            //// Add questionnaires for CPT Requests.
            //var questionnaires = new List<Questionnaire>
            //{
            //    new Questionnaire { StartDate = new DateTime (2018,4,30), EndDate = new DateTime(2018,6,20) , ResponseQuantityRequired = 250, QuestionnaireTypeId = 3, Status = QuestionnaireStatus.BMQuestionnaireApproval},

            //    new Questionnaire { StartDate = new DateTime (2018,5,10), EndDate = new DateTime(2018,5,30) , ResponseQuantityRequired = 150, QuestionnaireTypeId = 1, Status = QuestionnaireStatus.BMQuestionnaireApproval},

            //};
            //questionnaires.ForEach(p => context.Questionnaires.AddOrUpdate(q => q.StartDate, p));
            //context.SaveChanges();

            ////Add select questionnaires to link questionnaires to requests.

            //var selectquestionnaires = new List<SelectQuestionnaire>
            //{
            //     new SelectQuestionnaire { RequestID = 11, QuestionnaireID = 1, CPTEmployeeID = 3},

            //     new SelectQuestionnaire { RequestID = 9, QuestionnaireID = 2, CPTEmployeeID = 3}
            //};

            //selectquestionnaires.ForEach(p => context.SelectQuestionnaires.AddOrUpdate(q => q.RequestID, p));
            //context.SaveChanges();

            //// Update requests with questionnaire information.
            //var request9 = requests.Where(r => r.RequestID == 9).First();
            //request9.QuestionnaireId = 2;
            //request9.QuestionnaireExist = true;
            //request9.RequestStatus = RequestStatus.BMQuestionnaireApproval;
            //context.SaveChanges();

            //var request11 = requests.Where(r => r.RequestID == 11).First();
            //request11.QuestionnaireId = 1;
            //request11.QuestionnaireExist = true;
            //request11.RequestStatus = RequestStatus.BMQuestionnaireApproval;
            //context.SaveChanges();
        }