Licensing flow and error messages

License error messages involving UX designer and technical details

The design is pending by the UX designer.

Revised flow:

Next Steps

  1. Change License Window. Considering modes:

    1. First Time. There was no preexisting valid license. (Information)

    2. Couldn't get new license (Error)

    3. New license key activated, but validation failed. (Error)

    4. User requested license change. (Information)

  2. Execution Not Allowed Window?

    1. Design it.

    2. Could show the error message and ask if the user wants to change the license.

  3. Define error messages for 3 areas:

    1. License Invalid

    2. License Activation Failed

    3. Execution Request Not Allowed

  4. Review results with UX again

Next Steps - Code

Some changes were made during the meeting with Hugo, Olger, Alberto, and Kevin.

There are desired changes while the code was review like:

  • Do not allow to download a license if the product is different. Currently, the license is downloaded to the user's computer and then the product is validated.

  • There are lots of uses of the class "LicenseData" which must be replaced by the class "LicenseModel". "LicenseData" should be removed.

  • Currently, the license data is loaded dynamically many times during the licensing process, this should be happening only once.

  • There is a method in the class "LicenseEngine" called "Load" which returns null if the license can't be loaded. The problem here is that we are missing some vital information to solve a problem if it occurrs or report something valuable to the user. Look at the code:

        public LicenseData Load(string licensePath)
        {
            try
            {
                var restrictions = this.LicenseReader.ReadLicense(licensePath);
                return LoadLicense(restrictions);
            }
            catch
            {
                return null;
            }
        }

We should handle the exception

  • The LicenseValidator class should be refactored. There are unnecessary interfaces that can easily be removed. This would be important to review it with Hugo or Olger who have a clearer idea about this future change.

  • Currently, if there's a license that doesn't fulfill a restriction it only shows a status or message that says "Invalid license". We should handle a status for every restriction for the license.

Last updated