Пример #1
0
        protected override void _AddDkim(DkimRecordBase dkim_to_add)
        {
            var db_manager = new PostfixAdminDbManager(Server.Id, Server.ConnectionString);

            using (var db = db_manager.GetAdminDb())
            {
                var id_dkim = db.ExecuteScalar <int>(
                    new SqlQuery(DkimTable.name)
                    .Select(DkimTable.Columns.id)
                    .Where(DkimTable.Columns.domain_name, Name));

                if (id_dkim == 0)
                {
                    var insert_dkim = new SqlInsert(DkimTable.name)
                                      .InColumnValue(DkimTable.Columns.domain_name, Name)
                                      .InColumnValue(DkimTable.Columns.selector, dkim_to_add.Selector)
                                      .InColumnValue(DkimTable.Columns.private_key, dkim_to_add.PrivateKey)
                                      .InColumnValue(DkimTable.Columns.public_key, dkim_to_add.PublicKey);
                    db.ExecuteNonQuery(insert_dkim);
                }
                else
                {
                    var update_dkim = new SqlUpdate(DkimTable.name)
                                      .Where(DkimTable.Columns.id, id_dkim)
                                      .Set(DkimTable.Columns.selector, dkim_to_add.Selector)
                                      .Set(DkimTable.Columns.private_key, dkim_to_add.PrivateKey)
                                      .Set(DkimTable.Columns.public_key, dkim_to_add.PublicKey);
                    db.ExecuteNonQuery(update_dkim);
                }
            }
        }
Пример #2
0
        protected override void _RemoveAlias(MailAddressBase aliasToRemove)
        {
            var removeMailboxAlias = new SqlDelete(AliasTable.name)
                                     .Where(AliasTable.Columns.address, aliasToRemove.ToString());

            var dbManager = new PostfixAdminDbManager(Server.Id, Server.ConnectionString);

            using (var db = dbManager.GetAdminDb())
            {
                db.ExecuteNonQuery(removeMailboxAlias);
            }
        }
Пример #3
0
        protected override void _AddAlias(MailAddressBase aliasToAdd)
        {
            var insertMailboxAlias = new SqlInsert(AliasTable.name)
                                     .InColumnValue(AliasTable.Columns.address, aliasToAdd.ToString())
                                     .InColumnValue(AliasTable.Columns.redirect, Address.ToString())
                                     .InColumnValue(AliasTable.Columns.domain, aliasToAdd.Domain.Name)
                                     .InColumnValue(AliasTable.Columns.created, aliasToAdd.DateCreated)
                                     .InColumnValue(AliasTable.Columns.modified, aliasToAdd.DateCreated)
                                     .InColumnValue(AliasTable.Columns.active, true)
                                     .InColumnValue(AliasTable.Columns.is_group, false);

            var dbManager = new PostfixAdminDbManager(Server.Id, Server.ConnectionString);

            using (var db = dbManager.GetAdminDb())
            {
                db.ExecuteNonQuery(insertMailboxAlias);
            }
        }
Пример #4
0
        public PostfixServer(ServerSetup setup)
            : base(setup)
        {
            _dbManager = new PostfixAdminDbManager(setup.ServerId, setup.ConnectionString);

            var json = JObject.Parse(setup.ConnectionString);

            if (json["Api"] != null)
            {
                _serverApi = new ServerApi
                {
                    server_ip = json["Api"]["Server"].ToString(),
                    port      = Convert.ToInt32(json["Api"]["Port"].ToString()),
                    protocol  = json["Api"]["Protocol"].ToString(),
                    version   = json["Api"]["Version"].ToString(),
                    token     = json["Api"]["Token"].ToString()
                };
            }
        }
        private IDbManager GetDb()
        {
            var dbProvider = new PostfixAdminDbManager(Server.Id, Server.ConnectionString);

            return(dbProvider.GetAdminDb());
        }