Pregunta

Estoy construyendo un sitio ASP.NET MVC (C #) donde quiero aplicar STV ( único voto ) de votación . He usado OpenSTV para escenarios de voto antes, con gran éxito, pero nunca he utilizado mediante programación.

El href="http://code.google.com/p/stv/wiki/script16" rel="nofollow noreferrer" guión OpenSTV Google Code proyecto ofrece una script en Python que permite el uso de OpenSTV de otras aplicaciones:

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

¿Hay una manera para mí para hacer una llamada de este tipo de Python desde mi sitio C # ASP.NET MVC?

Si es así, ¿cómo?

Gracias de antemano!

¿Fue útil?

Solución

Aquí es un buen ejemplo de cómo llamar a IronPython desde C #, incluyendo el paso de argumentos y devolver los resultados; por supuesto, usted tiene que hacer que el código en una función, con ballotFname y reportFname como sus argumentos.

Otros consejos

La mejor manera es probablemente usar IronPython. Ver esta respuesta para un punto de partida.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top