#34 Update: Additional Validation & UI Changes

Ensure at least one field is selected, and UI improvements.
This commit is contained in:
Gary Sharp
2014-05-22 12:11:26 +10:00
parent 3fdb4f1053
commit f70261aa25
15 changed files with 352 additions and 213 deletions
@@ -11,12 +11,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Services.Devices.Export
namespace Disco.Services.Devices.Exporting
{
public static class DeviceExport
{
public static MemoryStream GenerateExport(DiscoDataContext Database, IQueryable<Device> Devices, DeviceExportOptions Options, IScheduledTaskBasicStatus TaskStatus)
public static DeviceExportResult GenerateExport(DiscoDataContext Database, IQueryable<Device> Devices, DeviceExportOptions Options, IScheduledTaskBasicStatus TaskStatus)
{
TaskStatus.UpdateStatus(15, "Building metadata and database query");
var metadata = Options.BuildMetadata();
@@ -70,14 +70,18 @@ namespace Disco.Services.Devices.Export
}
stream.Position = 0;
return stream;
return new DeviceExportResult()
{
CsvResult = stream,
RecordCount = records.Count
};
}
public static MemoryStream GenerateExport(DiscoDataContext Database, IQueryable<Device> Devices, DeviceExportOptions Options)
public static DeviceExportResult GenerateExport(DiscoDataContext Database, IQueryable<Device> Devices, DeviceExportOptions Options)
{
return GenerateExport(Database, Devices, Options, ScheduledTaskMockStatus.Create());
}
public static MemoryStream GenerateExport(DiscoDataContext Database, DeviceExportOptions Options, IScheduledTaskBasicStatus TaskStatus)
public static DeviceExportResult GenerateExport(DiscoDataContext Database, DeviceExportOptions Options, IScheduledTaskBasicStatus TaskStatus)
{
switch (Options.ExportType)
{
@@ -93,7 +97,7 @@ namespace Disco.Services.Devices.Export
throw new ArgumentException(string.Format("Unknown Device Export Type", Options.ExportType.ToString()), "Options");
}
}
public static MemoryStream GenerateExport(DiscoDataContext Database, DeviceExportOptions Options)
public static DeviceExportResult GenerateExport(DiscoDataContext Database, DeviceExportOptions Options)
{
return GenerateExport(Database, Options, ScheduledTaskMockStatus.Create());
}
@@ -7,7 +7,7 @@ using System.IO;
using System.Linq;
using Disco.Data.Repository;
namespace Disco.Services.Devices.Export
namespace Disco.Services.Devices.Exporting
{
public class DeviceExportTask : ScheduledTask
{
@@ -40,7 +40,7 @@ namespace Disco.Services.Devices.Export
using (DiscoDataContext Database = new DiscoDataContext())
{
context.CsvResult = DeviceExport.GenerateExport(Database, context.Options, this.Status);
context.Result = DeviceExport.GenerateExport(Database, context.Options, this.Status);
}
}
}
@@ -2,7 +2,7 @@
using Disco.Services.Tasks;
using System.IO;
namespace Disco.Services.Devices.Export
namespace Disco.Services.Devices.Exporting
{
public class DeviceExportTaskContext
{
@@ -10,7 +10,7 @@ namespace Disco.Services.Devices.Export
public ScheduledTaskStatus TaskStatus { get; set; }
public MemoryStream CsvResult { get; set; }
public DeviceExportResult Result { get; set; }
public DeviceExportTaskContext(DeviceExportOptions Options)
{