Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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();
                }
            }
        }
Esempio n. 4
0
 protected abstract void _DeleteWebDomain(WebDomainBase webDomain);
Esempio n. 5
0
 protected override void _DeleteWebDomain(WebDomainBase webDomain)
 {
     _serverData.Domains.Remove(webDomain);
 }