Exemplo n.º 1
0
        public void Create()
        {
            new TestOrganizationUnitsBuilder(_context, _tenantId).Create();
            new TestSubscriptionPaymentBuilder(_context, _tenantId).Create();
            new TestEditionsBuilder(_context).Create();

            _context.SaveChanges();
        }
        public void Create()
        {
            new DefaultEditionCreator(_context).Create();
            new DefaultLanguagesCreator(_context).Create();
            new DefaultSettingsCreator(_context).Create();
            new HostRoleAndUserCreator(_context).Create();

            _context.SaveChanges();
        }
Exemplo n.º 3
0
        private void AddSettingIfNotExists(string name, string value, int?tenantId = null)
        {
            if (_context.Settings.IgnoreQueryFilters().Any(s => s.Name == name && s.TenantId == tenantId && s.UserId == null))
            {
                return;
            }

            _context.Settings.Add(new Setting(tenantId, null, name, value));
            _context.SaveChanges();
        }
Exemplo n.º 4
0
        private void AddLanguageIfNotExists(ApplicationLanguage language)
        {
            if (_context.Languages.IgnoreQueryFilters().Any(l => l.TenantId == language.TenantId && l.Name == language.Name))
            {
                return;
            }

            _context.Languages.Add(language);

            _context.SaveChanges();
        }
Exemplo n.º 5
0
        private OrganizationUnit CreateOrganizationUnit(string displayName, string code, long?parentId = null)
        {
            var organizationUnit = _context.OrganizationUnits.Add(new OrganizationUnit(_tenantId, displayName, parentId)
            {
                Code = code
            }).Entity;

            _context.SaveChanges();

            return(organizationUnit);
        }
        private void CreateDefaultTenant()
        {
            //Default tenant

            var defaultTenant = _context.Tenants.IgnoreQueryFilters().FirstOrDefault(t => t.TenancyName == MultiTenancy.Tenant.DefaultTenantName);

            if (defaultTenant == null)
            {
                defaultTenant = new MultiTenancy.Tenant(AbpTenantBase.DefaultTenantName, AbpTenantBase.DefaultTenantName);

                var defaultEdition = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName);
                if (defaultEdition != null)
                {
                    defaultTenant.EditionId = defaultEdition.Id;
                }

                _context.Tenants.Add(defaultTenant);
                _context.SaveChanges();
            }
        }
Exemplo n.º 7
0
        private void CreateEditions()
        {
            var defaultEdition = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName);

            if (defaultEdition == null)
            {
                defaultEdition = new SubscribableEdition {
                    Name = EditionManager.DefaultEditionName, DisplayName = EditionManager.DefaultEditionName
                };
                _context.Editions.Add(defaultEdition);
                _context.SaveChanges();

                /* Add desired features to the standard edition, if wanted... */
            }

            if (defaultEdition.Id > 0)
            {
                CreateFeatureIfNotExists(defaultEdition.Id, AppFeatures.ChatFeature, true);
                CreateFeatureIfNotExists(defaultEdition.Id, AppFeatures.TenantToTenantChatFeature, true);
                CreateFeatureIfNotExists(defaultEdition.Id, AppFeatures.TenantToHostChatFeature, true);
            }
        }
Exemplo n.º 8
0
        public void CreateTenants()
        {
            Random rnd     = new Random();
            int    counter = 0;

            var defaultEdition        = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName);
            var defaultCurrenyId      = _context.Currencies.Where(c => c.Code == "SGD").FirstOrDefault().Id;
            var defaultCustomerTypeId = _context.CustomerTypes.FirstOrDefault().Id;

            // Customers

            bool createCustomers = true;

            var customers = _context.Customers.ToList();

            if (customers.Count > 0)
            {
                var lastCustomer = customers.Last();
                if (customerNames.Contains(lastCustomer.Name))
                {
                    createCustomers = false;
                }
                ;
            }

            if (createCustomers)
            {
                do
                {
                    string tenancyName = customerReferences[counter];

                    Tenant newTenant = new Tenant()
                    {
                        IsActive        = true,
                        TenancyName     = tenancyName,
                        EditionId       = defaultEdition.Id,
                        TenantType      = "C",
                        IsInTrialPeriod = false,
                        Name            = customerNames[counter]
                    };

                    Tenant createdTenant = _context.Tenants.Add(newTenant).Entity;
                    _context.SaveChanges();

                    Customer newCustomer = new Customer()
                    {
                        CurrencyId       = defaultCurrenyId,
                        CustomerTypeId   = defaultCustomerTypeId,
                        Identifier       = tenancyName,
                        Name             = customerNames[counter],
                        Reference        = tenancyName,
                        TenantId         = createdTenant.Id,
                        CustomerLoc8UUID = "",
                        LogoUrl          = "",
                        Website          = ""
                    };

                    Customer createdCustomer = _context.Customers.Add(newCustomer).Entity;
                    _context.SaveChanges();

                    counter = counter + 1;
                } while (counter < customerNames.Count());
            }


            // Vendors

            counter = 0;
            bool createVendors = true;

            var vendors = _context.Vendors.ToList();

            if (vendors.Count > 0)
            {
                var lastVendor = vendors.Last();
                if (vendorNames.Contains(lastVendor.Name))
                {
                    createVendors = false;
                }
                ;
            }

            if (createVendors)
            {
                do
                {
                    string tenancyName = vendorReferences[counter];

                    Tenant newTenant = new Tenant()
                    {
                        IsActive        = true,
                        TenancyName     = tenancyName,
                        EditionId       = defaultEdition.Id,
                        TenantType      = "V",
                        IsInTrialPeriod = false,
                        Name            = vendorNames[counter]
                    };

                    Tenant createdTenant = _context.Tenants.Add(newTenant).Entity;
                    _context.SaveChanges();

                    Vendor newVendor = new Vendor()
                    {
                        CurrencyId     = defaultCurrenyId,
                        Identifier     = tenancyName,
                        Name           = vendorNames[counter],
                        Reference      = tenancyName,
                        TenantId       = createdTenant.Id,
                        VendorLoc8GUID = "",
                        LogoUrl        = "",
                        Website        = "",
                    };

                    Vendor createdVendor = _context.Vendors.Add(newVendor).Entity;
                    _context.SaveChanges();

                    counter = counter + 1;
                } while (counter < vendorNames.Count());
            }

            // Asset Owners

            counter = 0;
            bool createAssetOwners = true;

            var assetOwners = _context.AssetOwners.ToList();

            if (assetOwners.Count > 0)
            {
                var lastAssetOwner = assetOwners.Last();
                if (assetOwnerNames.Contains(lastAssetOwner.Name))
                {
                    createAssetOwners = false;
                }
                ;
            }

            if (createAssetOwners)
            {
                do
                {
                    string tenancyName = assetOwnerNames[counter];

                    Tenant newTenant = new Tenant()
                    {
                        IsActive        = true,
                        TenancyName     = tenancyName,
                        EditionId       = defaultEdition.Id,
                        TenantType      = "A",
                        IsInTrialPeriod = false,
                        Name            = assetOwnerNames[counter]
                    };

                    Tenant createdTenant = _context.Tenants.Add(newTenant).Entity;
                    _context.SaveChanges();

                    AssetOwner newAssetOwner = new AssetOwner()
                    {
                        CurrencyId = defaultCurrenyId,
                        Identifier = tenancyName,
                        Name       = assetOwnerNames[counter],
                        Reference  = tenancyName,
                        TenantId   = createdTenant.Id,
                        LogoUrl    = "",
                        Website    = ""
                    };

                    AssetOwner createdAssetOwner = _context.AssetOwners.Add(newAssetOwner).Entity;
                    _context.SaveChanges();

                    counter = counter + 1;
                } while (counter < assetOwnerNames.Count());
            }
        }
        private void CreateHostRoleAndUsers()
        {
            //Admin role for host

            var adminRoleForHost = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.Host.Admin);

            if (adminRoleForHost == null)
            {
                adminRoleForHost = _context.Roles.Add(new Role(null, StaticRoleNames.Host.Admin, StaticRoleNames.Host.Admin)
                {
                    IsStatic = true, IsDefault = true
                }).Entity;
                _context.SaveChanges();
            }

            //admin user for host

            var adminUserForHost = _context.Users.IgnoreQueryFilters().FirstOrDefault(u => u.TenantId == null && u.UserName == AbpUserBase.AdminUserName);

            if (adminUserForHost == null)
            {
                var user = new User
                {
                    TenantId         = null,
                    UserName         = AbpUserBase.AdminUserName,
                    Name             = "admin",
                    Surname          = "admin",
                    EmailAddress     = "*****@*****.**",
                    IsEmailConfirmed = true,
                    ShouldChangePasswordOnNextLogin = false,
                    IsActive = true,
                    Password = "******" //123qwe
                };

                user.SetNormalizedNames();

                adminUserForHost = _context.Users.Add(user).Entity;
                _context.SaveChanges();

                //Assign Admin role to admin user
                _context.UserRoles.Add(new UserRole(null, adminUserForHost.Id, adminRoleForHost.Id));
                _context.SaveChanges();

                //User account of admin user
                _context.UserAccounts.Add(new UserAccount
                {
                    TenantId     = null,
                    UserId       = adminUserForHost.Id,
                    UserName     = AbpUserBase.AdminUserName,
                    EmailAddress = adminUserForHost.EmailAddress
                });

                _context.SaveChanges();

                //Notification subscriptions
                _context.NotificationSubscriptions.Add(new NotificationSubscriptionInfo(SequentialGuidGenerator.Instance.Create(), null, adminUserForHost.Id, AppNotificationNames.NewTenantRegistered));
                _context.NotificationSubscriptions.Add(new NotificationSubscriptionInfo(SequentialGuidGenerator.Instance.Create(), null, adminUserForHost.Id, AppNotificationNames.NewUserRegistered));

                _context.SaveChanges();
            }
        }
Exemplo n.º 10
0
        private void CreateRolesAndUsers()
        {
            var companyName = "default";

            if (_tenantType != null && _tenantId > 0)
            {
                Tenant tenant = _context.Tenants.Where(t => t.Id == _tenantId).FirstOrDefault();
                companyName = (tenant.Name != null) ? tenant.Name : companyName;
            }

            //Admin role

            var adminRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.Admin);

            if (adminRole == null)
            {
                adminRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.Admin, StaticRoleNames.Tenants.Admin)
                {
                    IsStatic = true
                }).Entity;
                _context.SaveChanges();
            }

            //User role

            /*
             * var userRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.User);
             * if (userRole == null)
             * {
             *  _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.User, StaticRoleNames.Tenants.User) { IsStatic = true, IsDefault = true });
             *  _context.SaveChanges();
             * }
             */

            //CustomerAdmin role

            if (_tenantType == "C")
            {
                var customerAdminRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.CustomerAdmin);
                if (customerAdminRole == null)
                {
                    customerAdminRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.CustomerAdmin, StaticRoleNames.Tenants.CustomerAdmin)
                    {
                        IsStatic = true
                    }).Entity;
                    _context.SaveChanges();

                    var customer = _context.Customers.Where(c => c.TenantId == _tenantId).FirstOrDefault();

                    if (customer != null)
                    {
                        CreateTestUser(customerAdminRole.Id, customer.Name, true);
                    }
                    ;

                    var permissions = TenantPermissionConsts.CustomerAdminPermissions.Split(',').ToList();

                    foreach (var permission in permissions)
                    {
                        if (permission != "")
                        {
                            _context.RolePermissions.Add(new RolePermissionSetting()
                            {
                                CreationTime = DateTime.Now, CreatorUserId = null, Id = 0, IsGranted = true, Name = permission, RoleId = customerAdminRole.Id, TenantId = _tenantId
                            });
                        }
                    }

                    _context.SaveChanges();
                }
            }

            //CustomerUser role

            if (_tenantType == "C")
            {
                var customerUserRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.CustomerUser);
                if (customerUserRole == null)
                {
                    customerUserRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.CustomerUser, StaticRoleNames.Tenants.CustomerUser)
                    {
                        IsStatic = true
                    }).Entity;
                    _context.SaveChanges();

                    var customer = _context.Customers.Where(c => c.TenantId == _tenantId).FirstOrDefault();

                    if (customer != null)
                    {
                        CreateTestUser(customerUserRole.Id, customer.Name, false);
                    }
                    ;

                    var permissions = TenantPermissionConsts.CustomerUserPermissions.Split(',').ToList();

                    foreach (var permission in permissions)
                    {
                        if (permission != "")
                        {
                            _context.RolePermissions.Add(new RolePermissionSetting()
                            {
                                CreationTime = DateTime.Now, CreatorUserId = null, Id = 0, IsGranted = true, Name = permission, RoleId = customerUserRole.Id, TenantId = _tenantId
                            });
                        }
                    }

                    _context.SaveChanges();
                }
            }


            //VendorAdmin role

            if (_tenantType == "V")
            {
                var vendorAdminRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.VendorAdmin);
                if (vendorAdminRole == null)
                {
                    vendorAdminRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.VendorAdmin, StaticRoleNames.Tenants.VendorAdmin)
                    {
                        IsStatic = true
                    }).Entity;
                    _context.SaveChanges();

                    var vendor = _context.Vendors.Where(c => c.TenantId == _tenantId).FirstOrDefault();

                    if (vendor != null)
                    {
                        CreateTestUser(vendorAdminRole.Id, vendor.Name, true);
                    }
                    ;

                    var permissions = TenantPermissionConsts.VendorAdminPermissions.Split(',').ToList();

                    foreach (var permission in permissions)
                    {
                        if (permission != "")
                        {
                            _context.RolePermissions.Add(new RolePermissionSetting()
                            {
                                CreationTime = DateTime.Now, CreatorUserId = null, Id = 0, IsGranted = true, Name = permission, RoleId = vendorAdminRole.Id, TenantId = _tenantId
                            });
                        }
                    }

                    _context.SaveChanges();
                }
            }

            //VendorUser role

            if (_tenantType == "V")
            {
                var vendorUserRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.VendorUser);
                if (vendorUserRole == null)
                {
                    vendorUserRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.VendorUser, StaticRoleNames.Tenants.VendorUser)
                    {
                        IsStatic = true
                    }).Entity;
                    _context.SaveChanges();

                    var vendor = _context.Vendors.Where(c => c.TenantId == _tenantId).FirstOrDefault();

                    if (vendor != null)
                    {
                        CreateTestUser(vendorUserRole.Id, vendor.Name, false);
                    }
                    ;

                    var permissions = TenantPermissionConsts.VendorUserPermissions.Split(',').ToList();

                    foreach (var permission in permissions)
                    {
                        if (permission != "")
                        {
                            _context.RolePermissions.Add(new RolePermissionSetting()
                            {
                                CreationTime = DateTime.Now, CreatorUserId = null, Id = 0, IsGranted = true, Name = permission, RoleId = vendorUserRole.Id, TenantId = _tenantId
                            });
                        }
                    }

                    _context.SaveChanges();
                }
            }

            //AssetOwnerAdmin role

            if (_tenantType == "A")
            {
                var assetOwnerAdminRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.AssetOwnerAdmin);
                if (assetOwnerAdminRole == null)
                {
                    assetOwnerAdminRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.AssetOwnerAdmin, StaticRoleNames.Tenants.AssetOwnerAdmin)
                    {
                        IsStatic = true
                    }).Entity;
                    _context.SaveChanges();

                    var assetOwner = _context.AssetOwners.Where(c => c.TenantId == _tenantId).FirstOrDefault();

                    if (assetOwner != null)
                    {
                        CreateTestUser(assetOwnerAdminRole.Id, assetOwner.Name, true);
                    }
                    ;

                    var permissions = TenantPermissionConsts.AssetOwnerAdminPermissions.Split(',').ToList();

                    foreach (var permission in permissions)
                    {
                        if (permission != "")
                        {
                            _context.RolePermissions.Add(new RolePermissionSetting()
                            {
                                CreationTime = DateTime.Now, CreatorUserId = null, Id = 0, IsGranted = true, Name = permission, RoleId = assetOwnerAdminRole.Id, TenantId = _tenantId
                            });
                        }
                    }

                    _context.SaveChanges();
                }
            }

            //AssetOwnerUser role

            if (_tenantType == "A")
            {
                var assetOwnerUserRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.AssetOwnerUser);
                if (assetOwnerUserRole == null)
                {
                    assetOwnerUserRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.AssetOwnerUser, StaticRoleNames.Tenants.AssetOwnerUser)
                    {
                        IsStatic = true
                    }).Entity;
                    _context.SaveChanges();

                    var assetOwner = _context.AssetOwners.Where(c => c.TenantId == _tenantId).FirstOrDefault();

                    if (assetOwner != null)
                    {
                        CreateTestUser(assetOwnerUserRole.Id, assetOwner.Name, false);
                    }
                    ;

                    var permissions = TenantPermissionConsts.AssetOwnerUserPermissions.Split(',').ToList();

                    foreach (var permission in permissions)
                    {
                        if (permission != "")
                        {
                            _context.RolePermissions.Add(new RolePermissionSetting()
                            {
                                CreationTime = DateTime.Now, CreatorUserId = null, Id = 0, IsGranted = true, Name = permission, RoleId = assetOwnerUserRole.Id, TenantId = _tenantId
                            });
                        }
                    }

                    _context.SaveChanges();
                }
            }


            //admin user

            var adminUser = _context.Users.IgnoreQueryFilters().FirstOrDefault(u => u.TenantId == _tenantId && u.UserName == AbpUserBase.AdminUserName);

            if (adminUser == null)
            {
                adminUser                  = User.CreateTenantHostAdminUser(_tenantId, "*****@*****.**");
                adminUser.Password         = new PasswordHasher <User>(new OptionsWrapper <PasswordHasherOptions>(new PasswordHasherOptions())).HashPassword(adminUser, "123qwe");
                adminUser.IsEmailConfirmed = true;
                adminUser.ShouldChangePasswordOnNextLogin = true;
                adminUser.IsActive = true;

                _context.Users.Add(adminUser);
                _context.SaveChanges();

                //Assign Admin role to admin user
                _context.UserRoles.Add(new UserRole(_tenantId, adminUser.Id, adminRole.Id));
                _context.SaveChanges();

                //User "account" of admin user

                if (_tenantId == 1) // WHY oh WHY is this just for tenantId 1 ????????????????????????????????????????????????????
                {
                    _context.UserAccounts.Add(new UserAccount
                    {
                        TenantId     = _tenantId,
                        UserId       = adminUser.Id,
                        UserName     = AbpUserBase.AdminUserName,
                        EmailAddress = adminUser.EmailAddress
                    });
                    _context.SaveChanges();
                }

                //Notification subscription
                _context.NotificationSubscriptions.Add(new NotificationSubscriptionInfo(SequentialGuidGenerator.Instance.Create(), _tenantId, adminUser.Id, AppNotificationNames.NewUserRegistered));
                _context.SaveChanges();
            }
        }