public void SetUp() { server = TestContext.CreateServer(); peter_domain = server.CreateWebDomain(_peterDomainName, IS_VERIFIED, TestContext.ServerFactory); peter_address = TestContext.CreateRandomMailAddress(peter_domain); peter_account = TestContext.GetMailAccount(peter_address.LocalPart, _peterDomainName); }
public void Init() { server = TestContext.CreateServer(); peter_domain = server.CreateWebDomain(_peterDomainName, IS_VERIFIED, TestContext.ServerFactory); peter_mail_group_address = TestContext.CreateRandomMailAddress(peter_domain); var peterMailboxAddress = TestContext.CreateRandomMailAddress(peter_domain); var peterAccount = TestContext.GetMailAccount(peterMailboxAddress.LocalPart, _peterDomainName); peter_mailbox = server.CreateMailbox(peterMailboxAddress.LocalPart, PETER_PASSWORD, peterMailboxAddress.Domain, peterAccount, TestContext.ServerFactory); peter_mail_group = server.CreateMailGroup(peter_mail_group_address.LocalPart, peter_mail_group_address.Domain, new List<int> { peter_mailbox.Address.Id }, TestContext.ServerFactory); }
public void Init() { server = TestContext.CreateServer(); peter_domain = server.CreateWebDomain(_peterDomainName, IS_VERIFIED, TestContext.ServerFactory); peter_address = TestContext.CreateRandomMailAddress(peter_domain); peter_second_address = TestContext.CreateRandomMailAddress(peter_domain); peter_alias = TestContext.CreateRandomMailAddress(peter_domain); peter_account = TestContext.GetMailAccount(peter_address.LocalPart, _peterDomainName); peter_second_account = TestContext.GetMailAccount(peter_second_address.LocalPart, _peterDomainName); peter_mailbox = server.CreateMailbox(peter_address.LocalPart, PETER_PASSWORD, peter_domain, peter_account, TestContext.ServerFactory); peter_second_mailbox = server.CreateMailbox(peter_second_address.LocalPart, PETER_PASSWORD, peter_domain, peter_second_account, TestContext.ServerFactory); }
public void Clean() { if (peter_mailbox != null) { server.DeleteMailbox(peter_mailbox); peter_mailbox = null; } if (peter_domain != null) { server.DeleteWebDomain(peter_domain, TestContext.ServerFactory); peter_domain = null; } }
public MailAddressModel(int id, int tenant, string localpart, IWebDomain domain) : base(localpart, new WebDomainBase(domain)) { if (id < 0) throw new ArgumentException("Invalid domain id", "id"); if (tenant < 0) throw new ArgumentException("Invalid tenant id", "tenant"); if (domain == null) throw new ArgumentException("Invalid domain", "domain"); Id = id; Tenant = tenant; Domain = domain; }
public WebDomainBase(IWebDomain webDomain) : this(webDomain.Name) { }
public abstract IMailGroup CreateMailGroup(string group_name, IWebDomain domain, List <int> address_ids, IMailServerFactory factory);
public void Init() { _server = TestContext.CreateServer(); _petersDomain = _server.CreateWebDomain(_peterDomainName, IS_VERIFIED, TestContext.ServerFactory); _peterAddress = TestContext.CreateRandomMailAddress(_petersDomain); }
public override IMailbox CreateMailbox(string localpart, string password, IWebDomain domain, IMailAccount account, IMailServerFactory factory) { if (string.IsNullOrEmpty(localpart)) throw new ArgumentNullException("localpart"); if(domain == null) throw new ArgumentNullException("domain"); if (account == null) throw new ArgumentNullException("account"); if (localpart.Length + domain.Name.Length > 318) // 318 because of @ sign throw new ArgumentException("Address of mailbox exceed limitation of 319 characters.", "localpart"); var mailboxBase = new MailboxBase(new MailAccountBase(account.Login), new MailAddressBase(localpart, new WebDomainBase(domain)), new List<MailAddressBase>()) { DateCreated = DateTime.UtcNow }; MailboxWithAddressDto mailboxWithAddressDto; using (var dbContextWithTran = TeamlabMailboxDal.CreateMailDbContext(true)) { mailboxWithAddressDto = TeamlabMailboxDal.CreateMailbox(account.TeamlabAccount, mailboxBase.Address.ToString(), password, mailboxBase.Address.LocalPart, mailboxBase.Address.DateCreated, domain.Id, domain.Name, domain.IsVerified, dbContextWithTran.DbManager); _CreateMailbox(account.Login, password, localpart, domain.Name); dbContextWithTran.CommitTransaction(); } var mailboxAddress = factory.CreateMailAddress(mailboxWithAddressDto.mailbox_address.id, mailboxWithAddressDto.mailbox_address.tenant, mailboxWithAddressDto.mailbox_address.name, domain) ; var mailbox = factory.CreateMailbox(mailboxWithAddressDto.mailbox.id, mailboxWithAddressDto.mailbox.tenant, mailboxAddress, account, new List<IMailAddress>(), this); return mailbox; }
public void Init() { server = TestContext.CreateServer(); peter_domain = server.CreateWebDomain(_peterDomainName, IS_VERIFIED, TestContext.ServerFactory); }
public MockAddress(int id, int tenant, string name, IWebDomain domain) : base(id, tenant, name, domain) { }
public abstract INotificationAddress CreateNotificationAddress(string localpart, string password, IWebDomain domain, IMailServerFactory factory);
public abstract INotificationAddress CreateNotificationAddress(string localPart, IWebDomain domain, string smtpServer, int smtpPort, string smtpAccount, bool smtpAuth, EncryptionType smptEncryptionType, AuthenticationType smtpAuthenticationType);
public void CompareMailboxesWithDifferentDomainsWorks() { _paulsDomain = _server.CreateWebDomain(_paulsDomainName, IS_VERIFIED, TestContext.ServerFactory); _paulAddress = TestContext.CreateRandomMailAddress(_paulsDomain); Assert.IsFalse(_peterAddress.Equals(_paulAddress)); }
public IMailAddress CreateRandomMailAddress(IWebDomain domain) { var address = ServerFactory.CreateMailAddress(1, 0, CreateNewPeterName(), domain); return address; }
public void Dispose() { if (peter_domain == null) return; server.DeleteWebDomain(peter_domain, TestContext.ServerFactory); peter_domain = null; }
public override IMailAddress CreateMailAddress(int id, int tenant, string name, IWebDomain domain) { return new PostfixAddress(id, tenant, name, domain); }
public IMailAddress CreateRandomMailAddress(IWebDomain domain) { var address = ServerFactory.CreateMailAddress(1, 0, CreateNewPeterName(), domain); return(address); }
public override IMailAddress CreateMailAddress(int id, int tenant, string name, IWebDomain domain) { return(new MockAddress(id, tenant, name, domain)); }
public override IMailGroup CreateMailGroup(string groupName, IWebDomain domain, List <int> addressIds, IMailServerFactory factory) { if (string.IsNullOrEmpty(groupName)) { throw new ArgumentNullException("groupName", "ServerModel::CreateMailGroup"); } if (domain == null) { throw new ArgumentNullException("domain"); } if (addressIds == null) { throw new ArgumentNullException("addressIds"); } if (!addressIds.Any()) { throw new ArgumentException("Empty address_ids list"); } if (factory == null) { throw new ArgumentNullException("factory"); } MailGroupDto mailgroupDto; using (var dbContextWithTran = TeamlabMailGroupDal.CreateMailDbContext(true)) { var addressDtoList = TeamlabMailAddressDal.GetMailAddresses(addressIds, dbContextWithTran.DbManager); var addressBaseList = addressDtoList .Select(dto => new MailAddressBase(dto.name, new WebDomainBase(dto.domain.name))) .ToList(); var mailgroupBase = new MailGroupBase(new MailAddressBase(groupName, new WebDomainBase(domain)), addressBaseList) { Address = { DateCreated = DateTime.UtcNow } }; mailgroupDto = TeamlabMailGroupDal.SaveMailGroup(mailgroupBase.Address.LocalPart, mailgroupBase.Address.DateCreated, domain.Id, domain.Name, domain.IsVerified, addressDtoList, dbContextWithTran.DbManager); _CreateMailGroup(mailgroupBase.Address, addressBaseList); dbContextWithTran.CommitTransaction(); } var mailgroupAddress = factory.CreateMailAddress(mailgroupDto.address.id, mailgroupDto.address.tenant, mailgroupDto.address.name, domain); var inAddresses = mailgroupDto.addresses.Select( addressDto => factory.CreateMailAddress(addressDto.id, addressDto.tenant, addressDto.name, domain)) .ToList(); var mailgroup = factory.CreateMailGroup(mailgroupDto.id, mailgroupDto.id_tenant, mailgroupAddress, inAddresses.ToList(), this); return(mailgroup); }
public override INotificationAddress CreateNotificationAddress(string localPart, IWebDomain domain, string smtpServer, int smtpPort, string smtpAccount, bool smtpAuth, EncryptionType smptEncryptionType, AuthenticationType smtpAuthenticationType) { return(new PostfixNotificationAddress(localPart, domain, smtpServer, smtpPort, smtpAccount, smtpAuth, smptEncryptionType, smtpAuthenticationType)); }
public override void DeleteWebDomain(IWebDomain webDomain, IMailServerFactory factory) { if (webDomain == null) throw new ArgumentNullException("webDomain", "ServerModel::DeleteWebDomain"); if (factory == null) throw new ArgumentNullException("factory", "ServerModel::DeleteWebDomain"); using (var dbContextWithTran = TeamlabDomainDal.CreateMailDbContext(true)) { TeamlabDomainDal.DeleteDomain(webDomain.Id, dbContextWithTran.DbManager); _DeleteWebDomain(new WebDomainBase(webDomain)); TeamlabDnsDal.RemoveUsedDns(webDomain.Id, dbContextWithTran.DbManager); dbContextWithTran.CommitTransaction(); } }
public override IMailGroup CreateMailGroup(string groupName, IWebDomain domain, List<int> addressIds, IMailServerFactory factory) { if (string.IsNullOrEmpty(groupName)) throw new ArgumentNullException("groupName", "ServerModel::CreateMailGroup"); if (domain == null) throw new ArgumentNullException("domain"); if (addressIds == null) throw new ArgumentNullException("addressIds"); if(!addressIds.Any()) throw new ArgumentException("Empty address_ids list"); if (factory == null) throw new ArgumentNullException("factory"); MailGroupDto mailgroupDto; using (var dbContextWithTran = TeamlabMailGroupDal.CreateMailDbContext(true)) { var addressDtoList = TeamlabMailAddressDal.GetMailAddresses(addressIds, dbContextWithTran.DbManager); var addressBaseList = addressDtoList .Select(dto => new MailAddressBase(dto.name, new WebDomainBase(dto.domain.name))) .ToList(); var mailgroupBase = new MailGroupBase(new MailAddressBase(groupName, new WebDomainBase(domain)), addressBaseList); mailgroupDto = TeamlabMailGroupDal.SaveMailGroup(mailgroupBase.Address.LocalPart, mailgroupBase.Address.DateCreated, domain.Id, domain.Name, domain.IsVerified, addressDtoList, dbContextWithTran.DbManager); _CreateMailGroup(mailgroupBase.Address, addressBaseList); dbContextWithTran.CommitTransaction(); } var mailgroupAddress = factory.CreateMailAddress(mailgroupDto.address.id, mailgroupDto.address.tenant, mailgroupDto.address.name, domain); var inAddresses = mailgroupDto.addresses.Select( addressDto => factory.CreateMailAddress(addressDto.id, addressDto.tenant, addressDto.name, domain)) .ToList(); var mailgroup = factory.CreateMailGroup(mailgroupDto.id, mailgroupDto.id_tenant, mailgroupAddress, inAddresses.ToList(), this); return mailgroup; }
public void Init() { server = TestContext.CreateServer(); peter_domain = server.CreateWebDomain(_peterDomainName, _isVerified, TestContext.ServerFactory); }
public override IMailbox CreateMailbox(string name, string localpart, string password, IWebDomain domain, IMailAccount account, IMailServerFactory factory) { if (string.IsNullOrEmpty(localpart)) { throw new ArgumentNullException("localpart"); } if (domain == null) { throw new ArgumentNullException("domain"); } if (account == null) { throw new ArgumentNullException("account"); } if (localpart.Length + domain.Name.Length > 318) // 318 because of @ sign { throw new ArgumentException("Address of mailbox exceed limitation of 319 characters.", "localpart"); } var mailboxBase = new MailboxBase(new MailAccountBase(account.Login), new MailAddressBase(localpart, new WebDomainBase(domain)), name, new List <MailAddressBase>()) { Address = { DateCreated = DateTime.UtcNow } }; MailboxWithAddressDto mailboxWithAddressDto; using (var dbContextWithTran = TeamlabMailboxDal.CreateMailDbContext(true)) { mailboxWithAddressDto = TeamlabMailboxDal.CreateMailbox(account.TeamlabAccount, mailboxBase.Name, mailboxBase.Address.ToString(), password, mailboxBase.Address.LocalPart, mailboxBase.Address.DateCreated, domain.Id, domain.Name, domain.IsVerified, dbContextWithTran.DbManager); _CreateMailbox(account.Login, password, localpart, domain.Name, name); dbContextWithTran.CommitTransaction(); } var mailboxAddress = factory.CreateMailAddress(mailboxWithAddressDto.mailbox_address.id, mailboxWithAddressDto.mailbox_address.tenant, mailboxWithAddressDto.mailbox_address.name, domain); var mailbox = factory.CreateMailbox(mailboxWithAddressDto.mailbox.id, mailboxWithAddressDto.mailbox.tenant, mailboxAddress, mailboxWithAddressDto.mailbox.name, account, new List <IMailAddress>(), this); return(mailbox); }
public abstract IMailAddress CreateMailAddress(int id, int tenant, string name, IWebDomain domain);
public override INotificationAddress CreateNotificationAddress(string localpart, string password, IWebDomain domain, IMailServerFactory factory) { if (string.IsNullOrEmpty(localpart)) { throw new ArgumentNullException("localpart"); } if (string.IsNullOrEmpty(password)) { throw new ArgumentNullException("password"); } if (domain == null) { throw new ArgumentNullException("domain"); } if (localpart.Length + domain.Name.Length > 318) // 318 because of @ sign { throw new ArgumentException("Address of mailbox exceed limitation of 319 characters.", "localpart"); } var notificationAddressBase = new MailAddressBase(localpart, new WebDomainBase(domain)); var address = notificationAddressBase.ToString(); var smtpSettings = TeamlabServerDal.GetTenantServerSettings().FirstOrDefault(s => s.type == ServerType.Smtp); if (smtpSettings == null) { throw new Exception("No smtp settings."); } var smtpLogin = smtpSettings.smtpLoginFormat.Replace("%EMAILADDRESS%", address) .Replace("%EMAILLOCALPART%", localpart) .Replace("%EMAILDOMAIN%", notificationAddressBase.Domain.Name.ToLowerInvariant()) .Replace("%EMAILHOSTNAME%", Path.GetFileNameWithoutExtension(notificationAddressBase.Domain.Name.ToLowerInvariant())); var notificationAddressSettings = SettingsManager.Instance.LoadSettings <NotificationAddressSettings>(Tenant); if (!string.IsNullOrEmpty(notificationAddressSettings.NotificationAddress)) { throw new Exception("Setting already exists. Remove first."); } _CreateNotificationAddress(address, password, localpart, domain.Name); notificationAddressSettings = new NotificationAddressSettings { NotificationAddress = address }; if (!SettingsManager.Instance.SaveSettings(notificationAddressSettings, Tenant)) { _DeleteNotificationAddress(address); throw new Exception("Could not save notification address setting."); } var notificationAddress = factory.CreateNotificationAddress(localpart, domain, smtpSettings.hostname, smtpSettings.port, smtpLogin, true, smtpSettings.socket_type, smtpSettings.authentication_type); return(notificationAddress); }
public IMailAddress AddAlias(string aliasName, IWebDomain domain, IMailServerFactory factory) { if (Aliases.Any(a => a.LocalPart == aliasName && a.Domain.Id == domain.Id)) throw new DuplicateNameException("You want to add already existed alias"); var addressBase = new MailAddressBase(aliasName, new WebDomainBase(domain)) { DateCreated = DateTime.UtcNow.ToDbStyle() }; MailAddressDto aliasDto; using (var dbContextWithTran = TeamlabMailboxDal.CreateMailDbContext(true)) { if (TeamlabAddressDal.IsAddressAlreadyRegistered(aliasName, domain.Name, dbContextWithTran.DbManager)) throw new DuplicateNameException("You want to add already existed alias"); aliasDto = TeamlabAddressDal.AddMailboxAlias(Id, aliasName, addressBase.DateCreated, domain.Id, domain.Name, domain.IsVerified, dbContextWithTran.DbManager); _AddAlias(addressBase); dbContextWithTran.CommitTransaction(); } var alias = factory.CreateMailAddress(aliasDto.id, aliasDto.tenant, addressBase.LocalPart, domain); Aliases.Add(alias); return alias; }
public abstract void DeleteWebDomain(IWebDomain webDomain, IMailServerFactory factory);
public abstract void DeleteWebDomain(IWebDomain web_domain, IMailServerFactory factory);
public abstract IMailGroup CreateMailGroup(string groupName, IWebDomain domain, List<int> addressIds, IMailServerFactory factory);
public abstract IMailbox CreateMailbox(string localpart, string password, IWebDomain domain, IMailAccount account, IMailServerFactory factory);