Files
MoonPro.net/MP/Controllers/HomeController.cs
T

137 lines
4.7 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";
// Recupero ultime versioni applicazioni...
ViewBag.VersMpAdmin = "x.x.x.a";
ViewBag.VersMpIO = "x.x.x.b";
ViewBag.VersMpLand = "x.x.x.c";
ViewBag.VersMpMon = "x.x.x.d";
ViewBag.VersMpSite = "x.x.x.e";
ViewBag.VersMpTab = "x.x.x.f";
// 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();
// scarico TUTTI...
UpdateMan.obj.downloadLatest(updateUrl("ADM"), localDownloadPath("ADM"));
UpdateMan.obj.downloadLatest(updateUrl("IO"), localDownloadPath("IO"));
UpdateMan.obj.downloadLatest(updateUrl("LAND"), localDownloadPath("LAND"));
UpdateMan.obj.downloadLatest(updateUrl("MON"), localDownloadPath("MON"));
UpdateMan.obj.downloadLatest(updateUrl("SITE"), localDownloadPath("SITE"));
UpdateMan.obj.downloadLatest(updateUrl("TAB"), localDownloadPath("TAB"));
stopWatch.Stop();
// calcolo elapsed time come TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;
resultsMsg = string.Format("OK: {0} DOWNLOADED, {1:0.000} sec", caller, 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"));
}
}
}