using Newtonsoft.Json.Linq;
using System.Diagnostics;
using System.Threading.Tasks;
static void Main(string[] args)
Console.WriteLine("CORRETTORE SEQUENZIALE");
Console.Write("Classe da correggere: ");
string classe = Console.ReadLine();
string URL = "http://www.netlab.fauser.edu/static/correttore/elenco.php?classe=" + classe;
using (WebClient c = new WebClient())
string s = c.DownloadString(URL);
dynamic u = JObject.Parse(s);
int numquesiti = u.numquesiti;
string soluzioni = u.soluzioni;
int punticorretto = u.punticorretto;
int puntimancante = u.puntimancante;
int puntierrato = u.puntierrato;
int numalunni = u.numalunni;
Console.WriteLine("Correzione di {0} elaborati in corso. Attendere prego...", numalunni);
int[] matricola = new int[numalunni];
string[] cognome = new string[numalunni];
string[] nome = new string[numalunni];
object[] appoggio = u.alunni.ToObject<Object[]>();
for (int i = 0; i < numalunni; i++)
string Alunni = appoggio[i].ToString();
dynamic t = JObject.Parse(Alunni);
matricola[i] = t.matricola;
Task[] tsk = new Task[numalunni];
for (int z = 0; z < numalunni; z++)
tsk[z] = Task.Factory.StartNew(() =>
Stopwatch T = new Stopwatch();
string URLmatricola = "http://www.netlab.fauser.edu/static/correttore/elaborato.php?matricola=" + matricola[n];
string risposte = c.DownloadString(URLmatricola);
for (int j = 0; j < numquesiti; j++)
if (soluzioni[j] == risposte[j])
punteggio += punticorretto;
else if (risposte[j] == '.')
punteggio += puntimancante;
punteggio += puntierrato;
double secondi = Convert.ToDouble(T.ElapsedMilliseconds) / 1000;
Console.Write("Elaborato n. {0} Punteggio: {1} Tempo [s]: ", n + 1, punteggio);
Console.WriteLine(string.Format("{0:0.00}", secondi));
Console.Error.WriteLine("Errore: {0}", e.Message);