Feature #33: Enhanced Device Importing

Dynamic device importing. better input parsing and 5 additional import
fields.
This commit is contained in:
Gary Sharp
2014-05-25 16:34:06 +10:00
parent 6a45348bdb
commit e9042f7666
68 changed files with 6775 additions and 3039 deletions
+21 -12
View File
@@ -1,26 +1,35 @@
using Disco.Models.BI.Device;
using Disco.Models.Services.Devices.Importing;
using Disco.Models.UI.Device;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace Disco.Web.Models.Device
{
public class ImportReviewModel : DeviceImportReviewModel
{
public string ImportParseTaskId { get; set; }
public string ImportFilename { get; set; }
public List<ImportDevice> ImportDevices { get; set; }
public IDeviceImportContext Context { get; set; }
public static ImportReviewModel FromImportDeviceSession(ImportDeviceSession session)
public int StatisticErrorRecords { get; set; }
public int StatisticNewRecords { get; set; }
public int StatisticModifiedRecords { get; set; }
public int StatisticUnmodifiedRecords { get; set; }
public int StatisticImportRecords
{
return new ImportReviewModel()
{
ImportParseTaskId = session.ImportParseTaskId,
ImportFilename = session.ImportFilename,
ImportDevices = session.ImportDevices
};
get { return this.StatisticNewRecords + StatisticModifiedRecords; }
}
public IEnumerable<Tuple<DeviceImportFieldTypes, string>> HeaderTypes { get; set; }
public ImportReviewModel()
{
HeaderTypes = typeof(DeviceImportFieldTypes)
.GetFields()
.Select(p => Tuple.Create(p, (DisplayAttribute)p.GetCustomAttributes(typeof(DisplayAttribute), false).FirstOrDefault()))
.Where(p => p.Item2 != null)
.Select(p => Tuple.Create((DeviceImportFieldTypes)p.Item1.GetRawConstantValue(), p.Item2.Name)).ToList();
}
}
}