public CommercioDocChecksum(String value, CommercioDocChecksumAlgorithm algorithm)
 {
     Trace.Assert(value != null);
     // Trace.Assert(algorithm != null); Cannot be Null - it is an Enum! Different from Dart?
     this.value     = value;
     this.algorithm = algorithm;
 }
        // Recover the enum from the string value - CommercioDocChecksumAlgorithm
        public static CommercioDocChecksumAlgorithm ParseCommercioDocChecksumAlgorithm(String algoritm)
        {
            CommercioDocChecksumAlgorithm res = CommercioDocChecksumAlgorithm.MD5;

            switch (algoritm)
            {
                case "md5":
                    res = CommercioDocChecksumAlgorithm.MD5;
                    break;
                case "sha-1":
                    res = CommercioDocChecksumAlgorithm.SHA1;
                    break;
                case "sha-224":
                    res = CommercioDocChecksumAlgorithm.SHA224;
                    break;
                case "sha-256":
                    res = CommercioDocChecksumAlgorithm.SHA256;
                    break;
                case "sha-384":
                    res = CommercioDocChecksumAlgorithm.SHA384;
                    break;
                case "sha-512":
                    res = CommercioDocChecksumAlgorithm.SHA512;
                    break;
                default:
                    // EXception - Unknown
                    System.ArgumentException argEx = new System.ArgumentException($"CommercioDocChecksumAlgorithm: unknown Algoritm '{algoritm}'");
                    throw argEx;
            }

            return res;
        }
        // Alternate constructor from Json JObject
        public CommercioDocChecksum(JObject json)
        {
            this.value     = (String)json["value"];
            this.algorithm = CommercioDoc.ParseCommercioDocChecksumAlgorithm((String)json["algorithm"]);

            //Object outValue;
            //if (json.TryGetValue("value", out outValue))
            //    this.value = outValue as String;
            //if (json.TryGetValue("algorithm", out outValue))
            //    this.algorithm = (CommercioDocChecksumAlgorithm) outValue;
        }