protected void TimerTick(object sender, EventArgs e) { Timer1.Enabled = false; txtRisultato.Text = string.Empty; PageViews.SetActiveView(viewRisultato); Guid? uniqueCode = null; if (!string.IsNullOrWhiteSpace(qrReader.Code)) { uniqueCode = new Guid(qrReader.Code); } PersonaggiManagerNew manager = new PersonaggiManagerNew(DatabaseContext); Personaggio characterFound = manager.GetCharacterByGUID(uniqueCode); if (characterFound != null) { if (characterFound.Infeziones.Count == 0) { txtRisultato.Text = "Il soggetto risulta essere sano e privo di infezioni"; } else { foreach (var Infezione in characterFound.Infeziones) { txtRisultato.Text += Infezione.Nome + ": " + Infezione.Descrizione + "\r\n"; } } } else { txtRisultato.Text = "La sostanza analizzata non è sangue, perlomeno di nessuna specie conosciuta"; } }
void qrReader_OnCodeDecoded(object sender, EventArgs e) { //Tenere a mente: questo sistema di login si basa sul riconoscimento di UN codice recuperato da un QR Code. //Quindi non occorre confrontare password o che altro, basta recuperare il personaggio associato a quel codice, e verificare //che appartenga alla fazione corretta. string myCode = qrReader.Code; //fase 1: prendo il codice letto dal plugin if (!string.IsNullOrEmpty(myCode)) { Guid uniqueCode; try { uniqueCode = new Guid(myCode); } catch { lblErrorMessage.Text = "Cartellino non valido"; //Se il codice è un codice ad cazzum, non un GUID, è ovviamente un QR Code sbagliato return; } PersonaggiManagerNew manager = new PersonaggiManagerNew(this.DatabaseContext); Personaggio loggedCharacter = manager.GetCharacterByGUID(uniqueCode); //Cerco nel database un PG associato a quel GUID if (loggedCharacter == null) { lblErrorMessage.Text = "Cartellino non di login"; //Se non ho PG associati a quel GUID, non è un cartellino di login. Forse un medicinale o droga o oggetto. return; } string rete = Session["Rete"].ToString(); //recupero il codice della rete a cui ci si sta loggando if (string.IsNullOrWhiteSpace(rete)) { rete = "0"; } int numeroRete = int.Parse(rete.Trim()); if (numeroRete == 0 || loggedCharacter.Fazione == numeroRete) //il login è valido se la rete è 0 (Holonet blu), o se il PG appartiene alla fazione dell'holonet specifica (1 = repubblica, 2 = impero, 3 = federazione) { HttpCookie cookie = Context.Request.Cookies["Personaggio"]; //popolo il cookie col suo numero PG if (cookie != null) { cookie.Value = loggedCharacter.NumeroPG.ToString(); } else { Context.Response.Cookies.Add(new HttpCookie("Personaggio", loggedCharacter.NumeroPG.ToString())); } Session["Personaggio"] = loggedCharacter; Response.Redirect("~/Default.aspx"); //pagina di default con redirect al menu iniziale } else //Login non valido: non è l'Holonet blu, il personaggio esiste ma non fa parte della fazione. { Session["Personaggio"] = null; lblErrorMessage.Text = "Utente non autorizzato all'accesso"; } } }