public LicenseViewModel(UserControl _userControl, CryptoLicense _cryptoLicense) { currentUserControl = _userControl; cryptoLicense = _cryptoLicense; //Check cryptoLicense status if (!cryptoLicense.ValidateSignature()) { this.LicenseStatusText = string.Format("Die Lizenz ist ungültig!\nUm die Software weiter zu verwenden, wird ein gültiger Lizenzkey benötigt.", cryptoLicense.Status); } else if (cryptoLicense.IsLicenseDisabledInService()) { this.LicenseStatusText = "Diese Lizenz wurde deaktiviert!\nUm die Software weiter zu verwenden, wird ein gültiger Lizenzkey benötigt."; } else if (cryptoLicense.IsEvaluationExpired() || DateTime.Now > cryptoLicense.DateExpires) { this.LicenseStatusText = "Der Testzeitraum ist leider abgelaufen!\nUm die Software weiter zu verwenden, wird ein gültiger Lizenzkey benötigt."; } else if (cryptoLicense.IsEvaluationLicense()) { this.IsLicenseValid = true; this.LicenseStatusText = "Vielen Dank, dass Sie diese Software testen!"; if (cryptoLicense.HasDateExpires) { TimeSpan ts = (cryptoLicense.DateExpires.Date - DateTime.Now.Date); int remaining = ts.Days; if (remaining < 0) { remaining = 0; } int max = (cryptoLicense.DateExpires.Date - cryptoLicense.DateGenerated.Date).Days; if (max < 0) { max = 0; } this.EvaluationProgressMax = max; this.EvaluationProgressValue = remaining; this.EvaluationProgressText = string.Format("Die Lizenz läuft am {0} aus! {1} Tage verbleibend", cryptoLicense.DateExpires.ToString("dd-MMM-yyyy"), remaining); } if (cryptoLicense.HasMaxUsageDays) { int remaining = cryptoLicense.MaxUsageDays - cryptoLicense.CurrentUsageDays; if (remaining < 0) { remaining = 0; } else { remaining++; } this.EvaluationProgressMax = cryptoLicense.MaxUsageDays; this.EvaluationProgressValue = remaining; this.EvaluationProgressText = string.Format("{0} von {1} Tagen verbleibend", remaining, cryptoLicense.MaxUsageDays); } if (cryptoLicense.HasMaxUniqueUsageDays) { int remaining = cryptoLicense.MaxUniqueUsageDays - cryptoLicense.CurrentUniqueUsageDays; if (remaining < 0) { remaining = 0; } else if (remaining < cryptoLicense.MaxUniqueUsageDays) { remaining++; } this.EvaluationProgressMax = cryptoLicense.MaxUsageDays; this.EvaluationProgressValue = remaining; this.EvaluationProgressText = string.Format("{0} von {1} kompletten Nutzungstagen verbleibend", remaining, cryptoLicense.MaxUniqueUsageDays); } if (cryptoLicense.HasMaxExecutions) { int remaining = cryptoLicense.MaxExecutions - cryptoLicense.CurrentExecutions; if (remaining < 0) { remaining = 0; } else if (remaining < cryptoLicense.MaxExecutions) { remaining++; } this.EvaluationProgressMax = cryptoLicense.MaxExecutions; this.EvaluationProgressValue = remaining; this.EvaluationProgressText = string.Format("{0} von {1} Programmstarts verbleibend", remaining, cryptoLicense.MaxExecutions); } } else { this.LicenseStatusText = string.Format("Die Lizenz ist ungültig: {0}\nUm die Software weiter zu verwenden, wird ein gültiger Lizenzkey benötigt.", cryptoLicense.Status); } }