public static int UpdateMailList(MailList item) { // check account int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) return accountCheck; // load original meta item MailList origItem = (MailList)PackageController.GetPackageItem(item.Id); if (origItem == null) return BusinessErrorCodes.ERROR_MAIL_LISTS_PACKAGE_ITEM_NOT_FOUND; // check package int packageCheck = SecurityContext.CheckPackage(origItem.PackageId, DemandPackage.IsActive); if (packageCheck < 0) return packageCheck; // check recipients number if (!CheckRecipientsAllowedNumber(origItem.PackageId, Quotas.MAIL_MAXLISTMEMBERS, item.Members)) return BusinessErrorCodes.ERROR_MAIL_LISTS_RECIPIENTS_LIMIT; // place log record TaskManager.StartTask("MAIL_LIST", "UPDATE", origItem.Name); TaskManager.ItemId = item.Id; try { // restore original props if (item.Password == "") item.Password = CryptoUtils.Decrypt(origItem.Password); // get service MailServer mail = new MailServer(); ServiceProviderProxy.Init(mail, origItem.ServiceId); item.Name = origItem.Name; item.Enabled = true; item.Members = RemoveItemNameFromMembersList( item.Name , item.Members.Clone() as string[] ); // update service item mail.UpdateList(item); // update meta item item.Password = CryptoUtils.Encrypt(item.Password); PackageController.UpdatePackageItem(item); return 0; } catch (Exception ex) { throw TaskManager.WriteError(ex); } finally { TaskManager.CompleteTask(); } }