1. If the grace period has expired, does the call to IsGenuine(checkDays, graceDays) deactivate the computer?
Yes, it acts as if the computer is not activated.
2. When does the grace period start? Is it the first day they opened the app when they were already outside of the daysBetweenChecks (with the internet disconnected)? Or is the grace period calculated from the original call to IsGenuine?
The "start" is the last time your app verified or re-verified with the activations servers.
3. If IsGenuine(check, graceperiod) throws a DateTimeException will the computer be deactivated?
No, tell the customer to fix their date/time/timezone.
4. If I call IsGenuine(30, 7) and then call IsGenuins(45, 14) right after does the check days and grace period days get updated?
No. The "last checked" time is when TurboActivate last talked to the activation servers and got a valid response.
I call IsGenuine(30, 7) every time the app is launched. After the first run, the customer waits to open the app again until day 38 and they have the internet disconnected. 1. Would they get a NotGenuine result?
Yes. However, you can add an if statement that checks IsActivated() and if they are activated then show a dialog like "Couldn't reverify with the activation servers, click this button to recheck now", then call "IsGenuine()" (with no paramereters ) to reverify immediately when the customer clicks the button.
2. Do they get deactivated on that computer?
It depends on what you mean. No, the activation data is still on the computer, but IsGenuineEx() says they're not activated because they need to reverify with the servers (which is why IsActivated() will say they're still activated).