Feature: Device Importing & Exporting

This commit is contained in:
Gary Sharp
2013-07-25 17:46:20 +10:00
parent a3aaed1d13
commit ad6b1b19b6
67 changed files with 3058 additions and 266 deletions
@@ -465,5 +465,22 @@ namespace Disco.Web.Areas.API.Controllers
}
#endregion
#region Exporting
public virtual ActionResult ExportDevices(int id)
{
DeviceBatch db = dbContext.DeviceBatches.Find(id);
if (db == null)
throw new ArgumentNullException("id", "Invalid Device Batch Id");
var devices = dbContext.Devices.Where(d => !d.DecommissionedDate.HasValue && d.DeviceBatchId == db.Id);
var export = BI.DeviceBI.Importing.Export.GenerateExport(devices);
var filename = string.Format("DiscoDeviceExport-Batch_{0}-{1:yyyyMMdd-HHmmss}.csv", db.Id, DateTime.Now);
return File(export, "text/csv", filename);
}
#endregion
}
}
@@ -464,14 +464,19 @@ namespace Disco.Web.Areas.API.Controllers
#endregion
#region Importing / Exporting
public virtual ActionResult ImportParse(HttpPostedFileBase ImportFile)
{
if (ImportFile == null || ImportFile.ContentLength == 0)
throw new ArgumentNullException("ImportFile");
var status = Disco.BI.DeviceBI.Importing.ImportParseTask.Run(ImportFile.InputStream);
var fileName = ImportFile.FileName;
if (fileName.Contains(@"\"))
fileName = fileName.Substring(fileName.LastIndexOf('\\') + 1);
status.SetFinishedUrl(Url.Action(MVC.API.Device.ImportProcess(status.SessionId)));
var status = Disco.BI.DeviceBI.Importing.ImportParseTask.Run(ImportFile.InputStream, fileName);
status.SetFinishedUrl(Url.Action(MVC.Device.ImportReview(status.SessionId)));
return RedirectToAction(MVC.Config.Logging.TaskStatus(status.SessionId));
}
@@ -483,8 +488,23 @@ namespace Disco.Web.Areas.API.Controllers
var status = Disco.BI.DeviceBI.Importing.ImportProcessTask.Run(ParseTaskSessionKey);
status.SetFinishedUrl(Url.Action(MVC.Device.Index()));
return RedirectToAction(MVC.Config.Logging.TaskStatus(status.SessionId));
}
public virtual ActionResult ExportAllDevices()
{
// Non-Decommissioned Devices
var devices = dbContext.Devices.Where(d => !d.DecommissionedDate.HasValue);
var export = BI.DeviceBI.Importing.Export.GenerateExport(devices);
var filename = string.Format("DiscoDeviceExport-AllDevices-{0:yyyyMMdd-HHmmss}.csv", DateTime.Now);
return File(export, "text/csv", filename);
}
#endregion
}
}
@@ -334,5 +334,22 @@ namespace Disco.Web.Areas.API.Controllers
}
#endregion
#region Exporting
public virtual ActionResult ExportDevices(int id)
{
DeviceModel dm = dbContext.DeviceModels.Find(id);
if (dm == null)
throw new ArgumentNullException("id", "Invalid Device Model Id");
var devices = dbContext.Devices.Where(d => !d.DecommissionedDate.HasValue && d.DeviceModelId == dm.Id);
var export = BI.DeviceBI.Importing.Export.GenerateExport(devices);
var filename = string.Format("DiscoDeviceExport-Model_{0}-{1:yyyyMMdd-HHmmss}.csv", dm.Id, DateTime.Now);
return File(export, "text/csv", filename);
}
#endregion
}
}
@@ -6,6 +6,7 @@ using System.Web.Mvc;
using Disco.BI;
using Disco.BI.Extensions;
using Disco.Data.Configuration.Modules;
using Disco.Models.Repository;
namespace Disco.Web.Areas.API.Controllers
{
@@ -389,5 +390,22 @@ namespace Disco.Web.Areas.API.Controllers
}
#endregion
#region Exporting
public virtual ActionResult ExportDevices(int id)
{
DeviceProfile dp = dbContext.DeviceProfiles.Find(id);
if (dp == null)
throw new ArgumentNullException("id", "Invalid Device Profile Id");
var devices = dbContext.Devices.Where(d => !d.DecommissionedDate.HasValue && d.DeviceProfileId == dp.Id);
var export = BI.DeviceBI.Importing.Export.GenerateExport(devices);
var filename = string.Format("DiscoDeviceExport-Profile_{0}-{1:yyyyMMdd-HHmmss}.csv", dp.Id, DateTime.Now);
return File(export, "text/csv", filename);
}
#endregion
}
}