using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Tango.BL; using Tango.MachineService.Filters; using Tango.MachineService.Models; using Tango.Web.Helpers; using System.Data.Entity; using Tango.Web.Storage; using System.IO; using Microsoft.WindowsAzure.Storage.Blob; using System.Net.Http; using System.Net; using System.Net.Http.Headers; using System.Net.Mime; using Tango.MachineService.Views.FSEDownloads; using Tango.BL.Enumerations; namespace Tango.MachineService.Controllers { public class FSEDownloadsController : Controller { public ActionResult Index(int? buildVariant = 0) { IndexViewModel model = new IndexViewModel(); using (var db = ObservablesWebContext.CreateContext()) { int build = buildVariant.Value; var versions = db.FseVersions.Where(x => x.BuildVariant == build).ToList().OrderByDescending(x => Version.Parse(x.Version)).Take(6).ToList(); var manager = new BlobStorageManager(); var container = manager.GetContainer(MachineServiceConfig.FSE_VERSIONS_CONTAINER); String appName = ((FSEBuildVariants)build) == FSEBuildVariants.FSE ? "Tango FSE" : "Twine Studio"; ViewBag.BuildName = appName; foreach (var item in versions) { var installerBlob = container.GetBlockBlobReference(item.InstallerBlobName); model.Downloads.Add(new FSEDownload() { Name = $"{appName} v{Version.Parse(item.Version).ToString(3)}", Version = Version.Parse(item.Version).ToString(3), Comments = item.Comments, Date = item.LastUpdated.ToString("dddd, dd MMMM yyyy"), Address = MachineServiceConfig.CDN_ENDPOINT + installerBlob.Uri.AbsolutePath }); } if (model.Downloads.Count > 0) { var latest = model.Downloads.First(); model.Downloads.Remove(latest); model.LatestDownload = latest; } } return View(model); } } }