예제 #1
0
 //Constructor
 public SqlBackendRepo(BackendContext context)
 {
     _context = context;
 }
예제 #2
0
        public static void Initialize(this BackendContext context)
        {
            // Seeder for role
            if (!context.Role.Any())
            {
                context.AddRange(
                    new Role
                {
                    Name        = "Admin",
                    Description = "Set role for Admin User"
                },
                    new Role
                {
                    Name        = "Manage",
                    Description = "Set role for Manage User"
                },
                    new Role
                {
                    Name        = "Student",
                    Description = "Set role for Student User"
                });
                context.SaveChanges();
            }

            // Seeder for account: 1 admin, 2 managers, 2 students
            if (!context.Account.Any())
            {
                var salt1 = PasswordHandle.GetInstance().GenerateSalt();
                var salt2 = PasswordHandle.GetInstance().GenerateSalt();
                var salt3 = PasswordHandle.GetInstance().GenerateSalt();
                var salt4 = PasswordHandle.GetInstance().GenerateSalt();
                var salt5 = PasswordHandle.GetInstance().GenerateSalt();
                context.AddRange(
                    new Account
                {
                    Id       = "ADMIN",
                    Username = "******",
                    Salt     = salt1,
                    Password = PasswordHandle.GetInstance().EncryptPassword("Amin@123", salt1),
                    Email    = "*****@*****.**",
                },
                    new Account
                {
                    Id       = "MNG0001",
                    Username = "******",
                    Salt     = salt2,
                    Password = PasswordHandle.GetInstance().EncryptPassword("A123@a123", salt2),
                    Email    = "*****@*****.**",
                },
                    new Account
                {
                    Id       = "MNG0002",
                    Username = "******",
                    Salt     = salt3,
                    Password = PasswordHandle.GetInstance().EncryptPassword("A123@a123", salt3),
                    Email    = "*****@*****.**",
                },
                    new Account
                {
                    Id       = "STU0001",
                    Username = "******",
                    Salt     = salt4,
                    Password = PasswordHandle.GetInstance().EncryptPassword("A123@a123", salt4),
                    Email    = "*****@*****.**",
                },
                    new Account
                {
                    Id       = "STU0002",
                    Username = "******",
                    Salt     = salt5,
                    Password = PasswordHandle.GetInstance().EncryptPassword("A123@a123", salt5),
                    Email    = "*****@*****.**",
                }
                    );
                context.SaveChanges();
            }

            // Seeder for general information
            if (!context.GeneralInformation.Any())
            {
                var salt = PasswordHandle.GetInstance().GenerateSalt();
                context.AddRange(
                    new GeneralInformation
                {
                    AccountId = "ADMIN",
                    FirstName = "ADMIN",
                    LastName  = "ADMIN",
                    Phone     = "01234567890"
                },
                    new GeneralInformation
                {
                    AccountId = "MNG0001",
                    FirstName = "Hung",
                    LastName  = "Dao",
                    Phone     = "013237416",
                },
                    new GeneralInformation
                {
                    AccountId = "MNG0002",
                    FirstName = "Luyen",
                    LastName  = "Dao",
                    Phone     = "013257416",
                },
                    new GeneralInformation
                {
                    AccountId = "STU0001",
                    FirstName = "Thao",
                    LastName  = "Nguyen",
                    Phone     = "013257983",
                },
                    new GeneralInformation
                {
                    AccountId = "STU0002",
                    FirstName = "Anh",
                    LastName  = "Nguyen",
                    Phone     = "0130387983",
                }
                    );
                context.SaveChanges();
            }

            // Seeder for account-role
            if (!context.AccountRoles.Any())
            {
                context.AddRange(
                    new AccountRole
                {
                    AccountId = "ADMIN",
                    RoleId    = 1,
                },
                    new AccountRole
                {
                    AccountId = "MNG0001",
                    RoleId    = 2,
                },
                    new AccountRole
                {
                    AccountId = "MNG0002",
                    RoleId    = 2,
                },
                    new AccountRole()
                {
                    AccountId = "STU0002",
                    RoleId    = 3,
                },
                    new AccountRole()
                {
                    AccountId = "STU0001",
                    RoleId    = 3,
                }
                    );
                context.SaveChanges();
            }

            // Seeder for subject: 7 subjects
            if (!context.Subject.Any())
            {
                context.Subject.AddRange(
                    new Subject
                {
                    Id          = "WFP",
                    Name        = "Windows Forms Programming",
                    Description = "Working with Windows Forms"
                },
                    new Subject
                {
                    Id          = "WAD",
                    Name        = "Web Application Development",
                    Description = "Develop web application"
                },
                    new Subject
                {
                    Id          = "EAP",
                    Name        = "Enterprise Application Programming",
                    Description = "Develop enterprise application"
                },
                    new Subject
                {
                    Id          = "WCC",
                    Name        = "Working with Cloud Computing",
                    Description = "Cloud Computing"
                },
                    new Subject
                {
                    Id          = "MCC",
                    Name        = "Mobile & Cloud Computing",
                    Description = "Working with Mobile & Cloud Computing"
                },
                    new Subject
                {
                    Id          = "IEH",
                    Name        = "Introduction to Ethical hacking",
                    Description = "Ethical hacking introduction"
                },
                    new Subject
                {
                    Id          = "ICC",
                    Name        = "Introduction to Cloud Computing",
                    Description = "Cloud computing introduction"
                }
                    );
                context.SaveChanges();
            }

            // Seeder for class: 3 classes
            if (!context.Clazz.Any())
            {
                context.Clazz.AddRange(
                    new Clazz
                {
                    Id               = "T1707A",
                    StartDate        = DateTime.Now,
                    Session          = ClazzSession.Afternoon,
                    Status           = ClazzStatus.Active,
                    CurrentSubjectId = "WAD"
                },
                    new Clazz
                {
                    Id               = "T1707M",
                    StartDate        = DateTime.Now,
                    Session          = ClazzSession.Morning,
                    Status           = ClazzStatus.Active,
                    CurrentSubjectId = "WFP"
                },
                    new Clazz
                {
                    Id               = "T1707E",
                    StartDate        = DateTime.Now,
                    Session          = ClazzSession.Evening,
                    Status           = ClazzStatus.Active,
                    CurrentSubjectId = "EAP"
                }
                    );
                context.SaveChanges();
            }

            // Seeder for class-account: 3
            if (!context.ClazzAccount.Any())
            {
                context.ClazzAccount.AddRange(
                    new ClazzAccount
                {
                    ClazzId   = "T1707A",
                    AccountId = "STU0001"
                },
                    new ClazzAccount
                {
                    ClazzId   = "T1707M",
                    AccountId = "STU0001"
                },
                    new ClazzAccount
                {
                    ClazzId   = "T1707E",
                    AccountId = "STU0002"
                }
                    );
                context.SaveChanges();
            }

            // Seeder for class-subject: 5
            if (!context.ClazzSubject.Any())
            {
                context.ClazzSubject.AddRange(
                    new ClazzSubject
                {
                    ClazzId   = "T1707A",
                    SubjectId = "WFP"
                },
                    new ClazzSubject
                {
                    ClazzId   = "T1707A",
                    SubjectId = "WAD"
                },
                    new ClazzSubject
                {
                    ClazzId   = "T1707M",
                    SubjectId = "WFP"
                },
                    new ClazzSubject
                {
                    ClazzId   = "T1707E",
                    SubjectId = "EAP"
                },
                    new ClazzSubject
                {
                    ClazzId   = "T1707E",
                    SubjectId = "WAD"
                }
                    );
                context.SaveChanges();
            }

            // Seeder for mark (2 students)
            if (!context.Mark.Any())
            {
                context.Mark.AddRange(
                    new Mark
                {
                    AccountId = "STU0001",
                    SubjectId = "WFP",
                    Value     = 10,
                    MarkType  = MarkType.Theory
                },
                    new Mark
                {
                    AccountId = "STU0002",
                    SubjectId = "WFP",
                    Value     = 8,
                    MarkType  = MarkType.Theory
                },
                    new Mark
                {
                    AccountId = "STU0001",
                    SubjectId = "WAD",
                    Value     = 5,
                    MarkType  = MarkType.Theory
                },
                    new Mark
                {
                    AccountId = "STU0001",
                    SubjectId = "WFP",
                    Value     = 9,
                    MarkType  = MarkType.Assignment
                },
                    new Mark
                {
                    AccountId = "STU0002",
                    SubjectId = "WFP",
                    Value     = 7,
                    MarkType  = MarkType.Assignment
                },
                    new Mark
                {
                    AccountId = "STU0001",
                    SubjectId = "WFP",
                    Value     = 12,
                    MarkType  = MarkType.Practice
                },
                    new Mark
                {
                    AccountId = "STU0002",
                    SubjectId = "WFP",
                    Value     = 5,
                    MarkType  = MarkType.Practice
                }
                    );
                context.SaveChanges();
            }
        }
예제 #3
0
        public static void SeedData(BackendContext context, UserManager <IdentityUser> userManager)
        {
            Log.Logger = new LoggerConfiguration()
                         .WriteTo.Seq("http://*****:*****@admin.pl"
                },
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**"
                },
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**"
                },
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**"
                },
            };

            if (!userManager.Users.Any())
            {
                System.Console.WriteLine("Adding Users...");

                try
                {
                    foreach (var it in identityUsersItemList)
                    {
                        userManager.CreateAsync(it, "Aa123456!");
                        Thread.Sleep(1000);
                        userManager.AddClaimAsync(it, new Claim(ClaimTypes.Role, "User"));
                        Thread.Sleep(1000);
                    }

                    userManager.AddClaimAsync(identityUsersItemList[0], new Claim(ClaimTypes.Role, "Admin"));
                    Thread.Sleep(1000);
                }
                catch (Exception ex)
                {
                    Log.Information(
                        "Error while filling database with USER test data (SeedData). Exception: {exception}",
                        ex.Message);
                    Console.WriteLine("Error while filling database with USER test data.");
                }
            }
            Thread.Sleep(5000);
            if (!context.Categories.Any())
            {
                System.Console.WriteLine("Adding Categories...");
                var item = new List <Category>
                {
                    new Category {
                        CategoryName = "Słody"
                    },
                    new Category {
                        CategoryName = "Chmiele"
                    },
                    new Category {
                        CategoryName = "Drożdże"
                    },
                    new Category {
                        CategoryName = "Dodatki"
                    },
                    new Category {
                        CategoryName = "Ekstrakty"
                    },
                };
                try
                {
                    context.AddRange(item);
                    context.SaveChanges();
                }
                catch (Exception ex)
                {
                    Log.Information("Error while filling database with CATEGORY test data (SeedData). Exception: {exception}", ex.Message);
                    Console.WriteLine("Error while filling database with CATEGORY test data.");
                }
            }

            if (!context.Storages.Any())
            {
                System.Console.WriteLine("Adding Storage...");
                var storages = new List <Storage>();
                int i        = 1;
                foreach (var user in identityUsersItemList)
                {
                    storages.Add(new Storage {
                        IdUser = user, StorageName = "Storage " + i
                    });
                    i++;
                }
                ;
                try
                {
                    context.AddRange(storages);
                    context.SaveChanges();
                }
                catch (Exception ex)
                {
                    Log.Information("Error while filling database with STORAGES test data (SeedData). Exception: {exception}", ex.Message);
                    Console.WriteLine("Error while filling database with STORAGES test data.");
                }
            }

            if (!context.Items.Any())
            {
                System.Console.WriteLine("Adding Item...");
                var item = new List <Item>
                {
                    // Słody:
                    new Item {
                        ItemName = "Słód Monachijski Jasny", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Pszenica Niesłodowana", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Caramel Pils", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Pale Ale", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Red Active", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Monachijski Ciemny", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Carafa typ II", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Red Active", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Whisky", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Owsiany", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Wędzony Torfem", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Red Ale", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Karmelowy 30EBC", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Karmelowy 300EBC", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód CaraBody", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Wędzony Bukiem", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Cara Special typ II", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Abbey", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Wędzony Olchą", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Wędzony Jabłonią", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Pilzneński", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Karmelowy 150EBC", IdCategory = context.Categories.Find(1)
                    },
                    new Item {
                        ItemName = "Słód Wiedeński", IdCategory = context.Categories.Find(1)
                    },

                    // Chmiele:
                    new Item {
                        ItemName = "Tomyski", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Zeus", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Sorachi Ace", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Bravo", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Chmiel do lambica", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Herkules", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Agnus", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Vital", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Lubelski", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Willamette", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Warrior", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Vanguard", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Summit", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Sterling", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Strata", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Simcoe", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Sorachi Ace", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Sabro", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Pekko", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Palisade", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Nugget", IdCategory = context.Categories.Find(2)
                    },
                    new Item {
                        ItemName = "Mosaic", IdCategory = context.Categories.Find(2)
                    },

                    // Drożdże:
                    new Item {
                        ItemName = "Mangrove Jack's Bohemian Lager M84", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Fermentum Mobile FM55 Zielone wzgórze", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Fermentum Mobile FM54 Gorączka kalifornijska", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Fermentum Mobile FM52 Amerykański sen", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Fermentum Mobile FM42 Stare nadreńskie", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Fermentum Mobile FM41 Gwoździe i banany", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Fermentum Mobile FM31 Bawarska dolina", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Fermentum Mobile FM30 Bohemska rapsodia", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Fermentum Mobile FM23 Magiczny ogród", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Fermentum Mobile FM21 Odkrycie sezonu", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Fermentum Mobile FM13 Irlandzkie ciemności", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "White Labs  WLP1983 Charlie's fist bump Yeast", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Wyeast 3726 Farmhouse Ale", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Wyeast 2308 Munich Lager", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Wyeast 2124 Bohemian Lager", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Wyeast 2112 California Lager", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "Wyeast 1028 London Ale", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "White Labs WLP810 San Francisco Lager", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "White Labs WLP940 Mexican Lager", IdCategory = context.Categories.Find(3)
                    },
                    new Item {
                        ItemName = "White Labs WLP850 Copenhagen Lager", IdCategory = context.Categories.Find(3)
                    },

                    // Dodatki:
                    new Item {
                        ItemName = "Suszone skórki pomarańczy Bergamotki", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Aromat Manuka Honey", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Aromat Passion Fruit", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Aromat Coffe", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Aromat Cherry", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Aromat Apricot", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Aromat American OAK", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Kwiat wrzosu", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Werbena cytrynowa", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Trawa cytrynowa", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Pożywka dla drożdży", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Suszone skórki pomarańczy", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Suszone skórki cytryny", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Mech irlandzki", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Lukrecja", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Laktoza", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Kolendra", IdCategory = context.Categories.Find(4)
                    },
                    new Item {
                        ItemName = "Jagody jałowca", IdCategory = context.Categories.Find(4)
                    },

                    // Ekstrakty:
                    new Item {
                        ItemName = "Pszeniczny płynny ekstrakt słodowy", IdCategory = context.Categories.Find(5)
                    },
                    new Item {
                        ItemName = "Jasny płynny ekstrakt słodowy", IdCategory = context.Categories.Find(5)
                    },
                    new Item {
                        ItemName = "Jasny suchy ekstrakt słodowy", IdCategory = context.Categories.Find(5)
                    },
                    new Item {
                        ItemName = "Ciemny płynny ekstrakt słodowy", IdCategory = context.Categories.Find(5)
                    },
                    new Item {
                        ItemName = "Bursztynowy suchy ekstrakt słodowy", IdCategory = context.Categories.Find(5)
                    },
                    new Item {
                        ItemName = "Bursztynowy płynny ekstrakt słodowy", IdCategory = context.Categories.Find(5)
                    },
                };
                try
                {
                    context.AddRange(item);
                    context.SaveChanges();
                }
                catch (Exception ex)
                {
                    Log.Information("Error while filling database with ITEMS test data (SeedData). Exception: {exception}", ex.Message);
                    Console.WriteLine("Error while filling database with ITEMS test data.");
                }
            }

            List <Storage> storagesList = context.Storages.ToList();
            List <Item>    itemsList    = context.Items.ToList();
            int            idS          = storagesList[0].StorageId; // takes 1st storage Id from DB
            int            idI          = itemsList[0].ItemId;       // takes 1st item Id from DB

            if (!context.Expires.Any())
            {
                System.Console.WriteLine("Adding Expire...");
                var item = new List <Expire>();

                foreach (var user in identityUsersItemList)
                {
                    item.Add(new Expire
                    {
                        IdUser         = user,
                        IdStorage      = context.Storages.Find(idS),
                        IdItem         = context.Items.Find(idI),
                        ExpirationDate = DateTime.Today.AddDays(4)
                    });
                }
                ;
                context.AddRange(item);
                context.SaveChanges();
            }
        }