Files
MoonPro.net/MP/Controllers/HomeController.cs
T
2017-11-08 15:05:57 +01:00

198 lines
6.4 KiB
C#

using MP.Models;
using SteamWare;
using System;
using System.Diagnostics;
using System.Linq;
using System.Web.Configuration;
using System.Web.Mvc;
namespace MP.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Title = "MoonPro";
// x sicurezza leggo da web.config
ViewBag.Environment = WebConfigurationManager.AppSettings["Environment"];
using (var ctx = new MoonProEntities())
{
try
{
// esegue stored procedure come function, recuperando chiave desiderata...
var keyVal = ctx.stp_AKV_getByKey("Environment").ToList<AnagKeyValue>();
ViewBag.Environment = keyVal[0].valString;
// imposto URL dei vari siti
ViewBag.UrlMpSite = ctx.stp_AKV_getByKey("UrlMpSite").ToList<AnagKeyValue>()[0].valString;
ViewBag.UrlMpAdmin = ctx.stp_AKV_getByKey("UrlMpAdmin").ToList<AnagKeyValue>()[0].valString;
ViewBag.UrlMpIO = ctx.stp_AKV_getByKey("UrlMpIO").ToList<AnagKeyValue>()[0].valString;
ViewBag.UrlMpMON = ctx.stp_AKV_getByKey("UrlMpMON").ToList<AnagKeyValue>()[0].valString;
ViewBag.UrlMpTAB = ctx.stp_AKV_getByKey("UrlMpTAB").ToList<AnagKeyValue>()[0].valString;
}
catch
{
ViewBag.UrlMpSite = "../MP/SITE";
ViewBag.UrlMpAdmin = "../MP/ADM";
ViewBag.UrlMpIO = "../MP/IO";
ViewBag.UrlMpMON = "../MP/MON";
ViewBag.UrlMpTAB = "../MP/TAB";
//ViewBag.UrlMpSite = "../SITE";
//ViewBag.UrlMpAdmin = "../ADM";
//ViewBag.UrlMpIO = "../IO";
//ViewBag.UrlMpMON = "../MON";
//ViewBag.UrlMpTAB = "../TAB";
}
}
return View();
}
public ActionResult About()
{
ViewBag.Title = "MoonPro";
ViewBag.Message = "MoonPro è il motore software di MAPO, la nostra soluzione hardware";
return View();
}
public ActionResult Contact()
{
ViewBag.Title = "MoonPro";
ViewBag.Message = "Per contattarci";
return View();
}
public ActionResult Packages(string results)
{
ViewBag.Title = "MoonPro";
ViewBag.Message = "Ultime release applicazioni";
UpdateInfoEventArgs updArgs = new UpdateInfoEventArgs();
// Recupero info ADM...
updArgs = UpdateMan.obj.getUpdateInfo(updateUrl("ADM"));
if (updArgs.IsUpdateAvailable)
{
ViewBag.VersMpAdmin = updArgs.CurrentVersion;
}
else
{
ViewBag.VersMpAdmin = "ND";
ViewBag.AdmDisabled = "disabled";
}
// Recupero info IO...
updArgs = UpdateMan.obj.getUpdateInfo(updateUrl("IO"));
if (updArgs.IsUpdateAvailable)
{
ViewBag.VersMpIO = updArgs.CurrentVersion;
}
else
{
ViewBag.VersMpIO = "ND";
ViewBag.IODisabled = "disabled";
}
// Recupero info LAND...
updArgs = UpdateMan.obj.getUpdateInfo(updateUrl("LAND"));
if (updArgs.IsUpdateAvailable)
{
ViewBag.VersMpLand = updArgs.CurrentVersion;
}
else
{
ViewBag.VersMpLand = "ND";
ViewBag.LandDisabled = "disabled";
}
// Recupero info MON...
updArgs = UpdateMan.obj.getUpdateInfo(updateUrl("MON"));
if (updArgs.IsUpdateAvailable)
{
ViewBag.VersMpMon = updArgs.CurrentVersion;
}
else
{
ViewBag.VersMpMon = "ND";
ViewBag.MonDisabled = "disabled";
}
// Recupero info SITE...
updArgs = UpdateMan.obj.getUpdateInfo(updateUrl("SITE"));
if (updArgs.IsUpdateAvailable)
{
ViewBag.VersMpSite = updArgs.CurrentVersion;
}
else
{
ViewBag.VersMpSite = "ND";
ViewBag.SiteDisabled = "disabled";
}
// Recupero info TAB...
updArgs = UpdateMan.obj.getUpdateInfo(updateUrl("TAB"));
if (updArgs.IsUpdateAvailable)
{
ViewBag.VersMpTab = updArgs.CurrentVersion;
}
else
{
ViewBag.VersMpTab = "ND";
ViewBag.TabDisabled = "disabled";
}
// salvo risultati...
ViewBag.Results = results;
// VIEW!
return View();
}
// GET: Home/Download/Caller (ALL|ADM|IO|LAND|MON|SITE|TAB)
public ActionResult Download(string caller)
{
string resultsMsg = "";
// in base al caller scarico il file installazione richiesto...
if (caller == null)
{
caller = "ALL";
}
// ora verifico COSA devo scaricare...
if (updateUrl(caller) != "")
{
// se è ALL scarico tuttoi...
if (caller == "ALL")
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
int done = 0;
// scarico TUTTI...
done += UpdateMan.obj.downloadLatest(updateUrl("ADM"), localDownloadPath("ADM"));
done += UpdateMan.obj.downloadLatest(updateUrl("IO"), localDownloadPath("IO"));
done += UpdateMan.obj.downloadLatest(updateUrl("LAND"), localDownloadPath("LAND"));
done += UpdateMan.obj.downloadLatest(updateUrl("MON"), localDownloadPath("MON"));
done += UpdateMan.obj.downloadLatest(updateUrl("SITE"), localDownloadPath("SITE"));
done += UpdateMan.obj.downloadLatest(updateUrl("TAB"), localDownloadPath("TAB"));
stopWatch.Stop();
// calcolo elapsed time come TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;
resultsMsg = string.Format("OK: {0} Package downloaded, {1:0.000} sec", done, ts.TotalSeconds);
}
else
{
// scarico singolo target...
UpdateMan.obj.downloadLatest(updateUrl(caller), localDownloadPath(caller));
resultsMsg = string.Format("OK: {0} DOWNLOADED | {1} --> {2}", caller, updateUrl(caller), localDownloadPath(caller));
}
}
// ...chiamo action
return RedirectToAction("Packages", "Home", new { results = resultsMsg });
}
/// <summary>
/// Path locale dove scaricare gli installer
/// </summary>
protected string localDownloadPath(string package)
{
return string.Format(@"{0}{1}\{2}", memLayer.ML.CRS("downloadPath"), package, memLayer.ML.CRS("appVers"));
}
/// <summary>
/// URLK stringa di UPDATE...
/// </summary>
protected string updateUrl(string package)
{
return string.Format("http://seriate.steamware.net:8083/SWS/MAPO/{0}/{1}/manifest.xml", package, memLayer.ML.CRS("appVers"));
}
}
}