public IAddressModel Select(AddressSelectContext context) { Check.NotNull(context, nameof(context)); if (context.AddressModels.Count(p => p.Enabled) == 1 && AddressSelectorMode != AddressSelectorMode.HashAlgorithm) { return(context.AddressModels.First(p => p.Enabled)); } return(SelectAddressByAlgorithm(context)); }
protected abstract IAddressModel SelectAddressByAlgorithm(AddressSelectContext context);
protected override IAddressModel SelectAddressByAlgorithm(AddressSelectContext context) { var index = _generate(0, context.AddressModels.Length); return(context.AddressModels[index]); }