

import json, sys, os

if len(sys.argv) > 2:
    first_argument = sys.argv[1]
    second_argument = sys.argv[2]
    print("category at", first_argument, "culture at", second_argument)
else:
    print("Not enough command-line arguments provided.")
    exit()

def load(name):
    file = open(sys.argv[1], 'r', encoding='utf-8').read()
    dbdump = json.loads(file)
    return dbdump

def save(val,name):
    pretty = json.dumps(val, indent=2).encode().decode('unicode-escape')
    open(name, 'w', encoding='utf-8').write(pretty)


cat = load(sys.argv[1])
culs = load(sys.argv[2])



r = {
    "$type": "System.Collections.Generic.Dictionary`3[[System.Int32, mscorlib],[Lumed.Evaluation.Alerts.EvaluationMessageTypeCategoryWithLabel, Lumed.Evaluation]], mscorlib",
    "$values": {}
}

for e in cat:
    cul = [c for c in culs if c["EvaluationMessageTypeCategoryId"] == e['EvaluationMessageTypeCategoryId']]
    r['$values'][e['EvaluationMessageTypeCategoryId']] = {
        "$type": "Lumed.Evaluation.Alerts.EvaluationMessageTypeCategoryWithLabel, Lumed.Evaluation",
        "EvaluationMessageTypeCategoryId": e['EvaluationMessageTypeCategoryId'],
        "SystemName": e["SystemName"],
        "EvaluationSystemId": e["EvaluationSystemId"],
        # "EvaluatedSubjectTable": e["EvaluatedSubjectTable"],
        "DefaultRecommendations": {
            "$type": "System.Collections.Generic.List`1[[Lumed.Evaluation.Alerts.EvaluationCultureLabel, Lumed.Evaluation]], mscorlib",
            "$values": [
            {
                "$type": "Lumed.Evaluation.Alerts.EvaluationCultureLabel, Lumed.Evaluation",
                "CultureKey": "",
                "Label": next([c["DefaultRecommendation"] for c in cul if c["CultureKey"] == "" ], "")
            },
            {
                "$type": "Lumed.Evaluation.Alerts.EvaluationCultureLabel, Lumed.Evaluation",
                "CultureKey": "fr",
                "Label": ""
            }
            ]
        },
        "Labels": {
            "$type": "System.Collections.Generic.List`1[[Lumed.Evaluation.Alerts.EvaluationCultureLabel, Lumed.Evaluation]], mscorlib",
            "$values": [
            {
                "$type": "Lumed.Evaluation.Alerts.EvaluationCultureLabel, Lumed.Evaluation",
                "CultureKey": "",
                "Label": ""
            },
            {
                "$type": "Lumed.Evaluation.Alerts.EvaluationCultureLabel, Lumed.Evaluation",
                "CultureKey": "fr",
                "Label": ""
            }
            ]
        }
    }

save(r, os.path.dirname(os.path.realpath(sys.argv[1])) + '/EvaluationMessageTypeCategories.json')



print('done')