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; }