public FeaturesService(ISerialNumberService serialNumberService, SerialNumberEncoder serialNumberEncoder, CloudClientService cloudClientService = null, IDataBaseInfo dataBaseInfo = null) { this.serialNumberEncoder = serialNumberEncoder ?? throw new ArgumentNullException(nameof(serialNumberEncoder)); this.cloudClientService = cloudClientService ?? throw new ArgumentNullException(nameof(cloudClientService)); this.dataBaseInfo = dataBaseInfo; if (dataBaseInfo?.IsDemo == true) { ProductEdition = 0; return; } ProductEdition = 1; if (String.IsNullOrWhiteSpace(serialNumberService.SerialNumber)) { return; } serialNumberEncoder.Number = serialNumberService.SerialNumber; if (serialNumberEncoder.IsValid) { if (serialNumberEncoder.CodeVersion == 1) { ProductEdition = 2; //Все купленные серийные номера версии 1 приравниваются к профессиональной редакции. } else if (serialNumberEncoder.CodeVersion == 2 && serialNumberEncoder.EditionId >= 1 && serialNumberEncoder.EditionId <= 3) { ProductEdition = serialNumberEncoder.EditionId; } } }
[TestCase("MVPC-U4DX-MS6S-w7J1-M5", false)] //Ошибочный. public void EncoderV1_WorkwearTest(string sn, bool isValid) { var appInfo = Substitute.For <IApplicationInfo>(); appInfo.ProductName.Returns("workwear"); var encoder = new SerialNumberEncoder(appInfo); encoder.Number = sn; Assert.That(encoder.IsValid, Is.EqualTo(isValid)); }
public SerialNumberViewModel(INavigationManager navigation, SerialNumberEncoder encoder, ParametersService parametersService, IInteractiveQuestion interactive, ILifetimeScope autofacScope) : base(navigation) { SerialNumberEncoder = encoder ?? throw new ArgumentNullException(nameof(encoder)); this.parametersService = parametersService ?? throw new ArgumentNullException(nameof(parametersService)); this.interactive = interactive ?? throw new ArgumentNullException(nameof(interactive)); this.autofacScope = autofacScope ?? throw new ArgumentNullException(nameof(autofacScope)); serialNumber = this.parametersService.serial_number; Title = "Замена серийного номера"; SerialNumberEncoder.Number = serialNumber; lastEdition = SerialNumberEncoder.EditionId; }