protected override WebDomainBase _CreateWebDomain(string name) { var domain = new WebDomainBase(name) { DateCreated = DateTime.UtcNow }; try { var domainDescription = String.Format("Domain created in UtcTime: {0}, for tenant: {1}", domain.DateCreated, Tenant); var insertDomainQuery = new SqlInsert(DomainTable.name) .InColumnValue(DomainTable.Columns.domain, domain.Name) .InColumnValue(DomainTable.Columns.description, domainDescription) .InColumnValue(DomainTable.Columns.created, domain.DateCreated) .InColumnValue(DomainTable.Columns.modified, domain.DateCreated) .InColumnValue(DomainTable.Columns.active, true); using (var db = _dbManager.GetAdminDb()) { db.ExecuteNonQuery(insertDomainQuery); } return(domain); } catch (MySqlException ex) { if (ex.Message.StartsWith("Duplicate entry")) { throw new ArgumentException("Already added"); } throw; } }
protected override WebDomainBase _CreateWebDomain(string name) { if (_serverData.Domains.Any(d => d.Name == name)) { throw new ArgumentException("Already added"); } var resultDomain = new WebDomainBase(name); _serverData.Domains.Add(resultDomain); return(resultDomain); }
protected override void _DeleteWebDomain(WebDomainBase web_domain) { var delete_mailbox_query = new SqlDelete(MailboxTable.name).Where(MailboxTable.Columns.domain, web_domain.Name); var delete_mailbox_aliases = new SqlDelete(AliasTable.name).Where(AliasTable.Columns.domain, web_domain.Name); var delete_domain_query = new SqlDelete(DomainTable.name).Where(DomainTable.Columns.domain, web_domain.Name); using (var db = _dbManager.GetAdminDb()) { using (var t = db.BeginTransaction()) { ClearDomainStorageSpace(web_domain.Name); db.ExecuteNonQuery(delete_mailbox_aliases); db.ExecuteNonQuery(delete_mailbox_query); db.ExecuteNonQuery(delete_domain_query); t.Commit(); } } }
protected abstract void _DeleteWebDomain(WebDomainBase webDomain);
protected override void _DeleteWebDomain(WebDomainBase webDomain) { _serverData.Domains.Remove(webDomain); }