using System.Drawing.Imaging; using System.IO; using System.Web; using System.Web.Mvc; using ZXing; using ZXing.QrCode; namespace QR_GEN.Controllers { public class HomeController : Controller { /// /// Struct x richiesta serializzata/deserializzata /// public struct qrRequest { public string valore; } public ActionResult Index() { return View(); } public RedirectResult steamware() { return Redirect("https://www.steamware.net"); } /// /// Restituisce un QR code dato valore /// /// /// public ActionResult QR(string id) { // se vuoto stea,ware... if (id == null || id == "") { id = "www.steamware.net"; } #if false // se arriva modo json --> deserializzo if (id.IndexOf("{") >= 0) { var richiesta = JsonConvert.DeserializeObject(id); id = richiesta.valore; } #endif // url decode... id = HttpUtility.UrlDecode(id); // creo! QrCodeEncodingOptions options = new QrCodeEncodingOptions { DisableECI = true, CharacterSet = "UTF-8", Width = 600, Height = 600, Margin = 0 }; var writer = new BarcodeWriter(); writer.Format = BarcodeFormat.QR_CODE; writer.Options = options; // scrivo bitmap var pixelData = writer.Write(id); // Return Image MemoryStream ms = new MemoryStream(); pixelData.Save(ms, ImageFormat.Png); ms.Position = 0; return new FileStreamResult(ms, "image/png"); } /// /// Restituisce un QR code dato valore /// /// id x impostare SITO x jumper /// valore delle opzioni da embeddare /// public ActionResult QR_site(string id, string val) { string cmdArg = ""; // se vuoto stea,ware... if (id == null || id == "") { cmdArg = "www.steamware.net"; } #if false // se arriva modo json --> deserializzo if (id.IndexOf("{") >= 0) { var richiesta = JsonConvert.DeserializeObject(id); id = richiesta.valore; } #endif #if false // url decode... id = HttpUtility.UrlDecode(id); #endif // valutare se usare file web.config, file .ini, file conf generico... string tgtUrl = ""; // in base a richiesta compongo stringa ... switch (id) { case "CTRACK_ELET_SCAL": tgtUrl = @"ctrack.steamware.net/elet-scal/jumper?USER_NAME=info@elettronicascalvina.it&UserAuthkey=asdfbqhewrqg7802345bhasdfg78&CodOpr="; break; case "CTRACK_ELET_SCAL_UFF": tgtUrl = @"http://192.168.1.117/CTRACK/jumper?USER_NAME=info@elettronicascalvina.it&UserAuthkey=asdfbqhewrqg7802345bhasdfg78&CodOpr="; break; case "CTRACK_COLCOM": tgtUrl = @"http://192.168.0.113/MP/CTRACK/jumper?USER_NAME=opr_mon&UserAuthkey=AK_sdurb4930r2d&CodOpr="; break; default: break; } cmdArg = string.Format("{0}{1}", tgtUrl, val); // creo! QrCodeEncodingOptions options = new QrCodeEncodingOptions { DisableECI = true, CharacterSet = "UTF-8", Width = 600, Height = 600, Margin = 0 }; var writer = new BarcodeWriter(); writer.Format = BarcodeFormat.QR_CODE; writer.Options = options; // scrivo bitmap var pixelData = writer.Write(cmdArg); // Return Image MemoryStream ms = new MemoryStream(); pixelData.Save(ms, ImageFormat.Png); ms.Position = 0; return new FileStreamResult(ms, "image/png"); } } }