Exemplo n.º 1
0
        public static int AddMailDomainPointer(int itemId, int domainId)
        {
            // check account
            int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo);
            if (accountCheck < 0) return accountCheck;

            // load site item
            MailDomain mailDomain = (MailDomain)PackageController.GetPackageItem(itemId);
            if (mailDomain == null)
                return BusinessErrorCodes.ERROR_MAIL_DOMAIN_PACKAGE_ITEM_NOT_FOUND;

            // load domain item
            DomainInfo domain = ServerController.GetDomain(domainId);
            if (domain == null)
                return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND;

            // place log record
            TaskManager.StartTask("MAIL_DOMAIN", "ADD_POINTER", mailDomain.Name);
            TaskManager.ItemId = itemId;
            TaskManager.WriteParameter("Domain pointer", domain.DomainName);

            try
            {
                // update mail aliases
                MailServer mail = new MailServer();
                ServiceProviderProxy.Init(mail, mailDomain.ServiceId);
                mail.AddDomainAlias(mailDomain.Name, domain.DomainName);

                // update domain
                domain.MailDomainId = itemId;
                ServerController.UpdateDomain(domain);

                return 0;
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
            finally
            {
                TaskManager.CompleteTask();
            }
        }