Frage

Ich baue eine ASP.NET MVC (C #) Ort, an dem ich implementieren möchten STV ( tragbare Einzelstimmen ) voting . Ich habe vor OpenSTV zur Abstimmung Szenarien, mit großem Erfolg, aber ich habe es nie programmatisch verwendet.

Die OpenSTV Google Code aufrufen möchten Projekt bietet ein Python-Skript , die Verwendung von OpenSTV aus anderen Anwendungen ermöglicht:

import sys
sys.path.append("path to openstv package")

from openstv.ballots import Ballots
from openstv.ReportPlugins.TextReport import TextReport
from openstv.plugins import getMethodPlugins

(ballotFname, method, reportFname) = sys.argv[1:]

methods = getMethodPlugins("byName")
f = open(reportFname, "w")

try:
    b = Ballots()
    b.loadUnknown(ballotFname)
except Exception, msg:
    print >> f, ("Unable to read ballots from %s" % ballotFname)
    print >> f, msg
    sys.exit(-1)

try:
    e = methods[method](b)
    e.runElection()
except Exception, msg:
    print >> f, ("Unable to count votes using %s" % method)
    print >> f, msg
    sys.exit(-1)

try:
    r = TextReport(e, outputFile=f)
    r.generateReport();
except Exception, msg:
    print >> f, "Unable to write report"
    print >> f, msg
    sys.exit(-1)

f.close()

Gibt es eine Möglichkeit für mich, eine solche Python Anruf von meinem C # ASP.NET MVC-Website zu machen?

Wenn ja, wie?

Vielen Dank im Voraus!

War es hilfreich?

Lösung

Hier ist ein gutes Beispiel dafür, wie Ironpython von C # nennen, einschließlich Argumente und Ergebnisse zu geleitet wird; natürlich werden Sie diesen Code in eine Funktion, mit ballotFname und reportFname als Argument machen.

Andere Tipps

Der beste Weg ist wahrscheinlich Ironpython zu verwenden. Siehe diese Antwort für einen Ausgangspunkt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top