#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)
{
+7 -5
View File
@@ -172,9 +172,9 @@
<Compile Include="Authorization\Roles\RoleCache.cs" />
<Compile Include="Authorization\Roles\RoleClaims.cs" />
<Compile Include="Authorization\Roles\RoleToken.cs" />
<Compile Include="Devices\Export\DeviceExport.cs" />
<Compile Include="Devices\Export\DeviceExportTask.cs" />
<Compile Include="Devices\Export\DeviceExportTaskContext.cs" />
<Compile Include="Devices\Exporting\DeviceExport.cs" />
<Compile Include="Devices\Exporting\DeviceExportTask.cs" />
<Compile Include="Devices\Exporting\DeviceExportTaskContext.cs" />
<Compile Include="Extensions\DateTimeExtensions.cs" />
<Compile Include="Extensions\StringExtensions.cs" />
<Compile Include="Interop\ActiveDirectory\ActiveDirectory.cs" />
@@ -298,11 +298,13 @@
<ItemGroup>
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Folder Include="Devices\Importing\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
<UserProperties BuildVersion_UseGlobalSettings="False" BuildVersion_DetectChanges="False" BuildVersion_BuildAction="Both" BuildVersion_StartDate="2011/7/1" BuildVersion_BuildVersioningStyle="None.DeltaBaseYear.MonthAndDayStamp.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_UpdateFileVersion="True" />
<UserProperties BuildVersion_UpdateFileVersion="True" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.DeltaBaseYear.MonthAndDayStamp.TimeStamp" BuildVersion_StartDate="2011/7/1" BuildVersion_BuildAction="Both" BuildVersion_DetectChanges="False" BuildVersion_UseGlobalSettings="False" />
</VisualStudio>
</ProjectExtensions>
<PropertyGroup>