private void Do(ApprovedDomain site) { string url = site.DomainName; InstallerLog.Verbose($"Installing frapid on domain {url}."); try { var installer = new Installer.Tenant.Installer(url, false); installer.Notification += delegate(object sender, string message) { if (message.StartsWith("Error")) { this.OnError(sender, message); } else { this.OnNotification(sender, message); } }; installer.InstallAsync().GetAwaiter().GetResult(); DbInstalledDomains.AddAsync(site).GetAwaiter().GetResult(); new InstalledDomainSerializer().Add(site); } catch (Exception ex) { InstallerLog.Error("Could not install frapid on {url} due to errors. Exception: {Exception}", url, ex); throw; } }
public static void Add(ApprovedDomain tenant) { string database = TenantConvention.GetDbNameByConvention(tenant.DomainName); using (var db = DbProvider.Get(FrapidDbServer.GetSuperUserConnectionString(database, database), database).GetDatabase()) { var sql = new Sql("INSERT INTO account.installed_domains(domain_name, admin_email) SELECT @0, @1;", tenant.DomainName, tenant.AdminEmail); db.Execute(sql); } }
public static void Setup(ApprovedDomain domain) { var factory = new StdSchedulerFactory(); var scheduler = factory.GetScheduler(); scheduler.Start(); var job = JobBuilder.Create <InstallJob>().WithIdentity(domain.DomainName, "install").Build(); var trigger = TriggerBuilder.Create().WithIdentity(domain.DomainName, "install-trigger").StartAt(DateTimeOffset.UtcNow.AddSeconds(5)).Build(); scheduler.ScheduleJob(job, trigger); }
public static void Add(ApprovedDomain tenant) { string database = DbConvention.GetDbNameByConvention(tenant.DomainName); using (var db = DbProvider.Get(FrapidDbServer.GetSuperUserConnectionString(database)).GetDatabase()) { dynamic poco = new ExpandoObject(); poco.domain_name = tenant.DomainName; poco.admin_email = tenant.AdminEmail; db.Insert("account.installed_domains", "domain_id", true, poco); } }
public string GetBackupDirectory(ApprovedDomain domain, string tenant) { if (domain.BackupDirectoryIsFixedPath && !string.IsNullOrWhiteSpace(domain.BackupDirectory)) { return(domain.BackupDirectory); } if (!string.IsNullOrWhiteSpace(domain.BackupDirectory)) { return(HostingEnvironment.MapPath(domain.BackupDirectory)); } string path = $"/Backups/{tenant}/backup"; return(HostingEnvironment.MapPath(path)); }
public static async Task CreateUserAsync(string tenant, ApprovedDomain domain) { if (string.IsNullOrWhiteSpace(domain.AdminEmail) || string.IsNullOrWhiteSpace(domain.BcryptedAdminPassword)) { return; } var sql = new Sql("INSERT INTO account.users(email, password, office_id, role_id, name, phone)"); sql.Append("SELECT @0, @1, @2, @3, @4, @5", domain.AdminEmail, domain.BcryptedAdminPassword, 1, 9999, "", ""); using (var db = DbProvider.Get(FrapidDbServer.GetSuperUserConnectionString(tenant), tenant).GetDatabase()) { await db.NonQueryAsync(sql).ConfigureAwait(false); } }
public List <string> GetBackupDirectory(ApprovedDomain domain, string tenant) { var directories = new List <string>(); if (domain.BackupDirectoryIsFixedPath && !string.IsNullOrWhiteSpace(domain.BackupDirectory)) { directories.Add(domain.BackupDirectory); } if (!string.IsNullOrWhiteSpace(domain.BackupDirectory)) { directories.Add(PathMapper.MapPath(domain.BackupDirectory)); } else { string path = $"/Backups/{tenant}/backup"; directories.Add(PathMapper.MapPath(path)); } foreach (var backup in domain.AlternativeBackups) { if (!string.IsNullOrWhiteSpace(backup.Path)) { if (backup.IsFixedPath) { directories.Add(backup.Path); } else { directories.Add(PathMapper.MapPath(backup.Path)); } } } return(directories); }
public void Add(ApprovedDomain domain) { this.Domains.Add(domain); }
public static async Task AddAsync(ApprovedDomain tenant) { string database = TenantConvention.GetDbNameByConvention(tenant.DomainName); var sql = new Sql("INSERT INTO account.installed_domains(domain_name, admin_email) SELECT @0, @1;", tenant.DomainName, tenant.AdminEmail); await Factory.NonQueryAsync(database, sql).ConfigureAwait(false); }