Вопрос

Я создаю сайт ASP.NET MVC (C #), где я хочу реализовать STV (Одиночное передаваемое голосование) голосование. Отказ Я использовал OpenStv для голосования сценариев раньше, с большим успехом, но я никогда не использовал его программно.

То Проект OpenStv Google Code предлагает сценарий Python Это позволяет использовать OpenStv из других приложений:

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()

Есть ли путь для меня, чтобы сделать такой вызов Python с моего C # ASP.NET MVC MVC?

Если так, как?

Заранее спасибо!

Это было полезно?

Решение

Здесь является хорошим примером о том, как позвонить на IronPython из C #, включая передачу аргументов и возвращающихся результатов; Конечно, вам придется сделать этот код в функцию, с ballotFname а также reportFname как его аргументы.

Другие советы

Лучший способ, вероятно, использовать IronPython. Видеть Этот ответ для отправной точки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top