Update: Device Battery field, Excel CSV Format
Device Battery import & export; Leading zero workaround for Excel
This commit is contained in:
@@ -66,7 +66,7 @@ namespace Disco.BI.Extensions
|
||||
detail.Value = Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region LanMacAddress
|
||||
@@ -84,7 +84,7 @@ namespace Disco.BI.Extensions
|
||||
public static void LanMacAddress(this IEnumerable<DeviceDetail> details, Device device, string LanMacAddress)
|
||||
{
|
||||
device.SetDetail(DeviceDetail.ScopeHardware, DeviceDetail.HardwareKeyLanMacAddress, LanMacAddress);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region WLanMacAddress
|
||||
@@ -102,7 +102,7 @@ namespace Disco.BI.Extensions
|
||||
public static void WLanMacAddress(this IEnumerable<DeviceDetail> details, Device device, string WLanMacAddress)
|
||||
{
|
||||
device.SetDetail(DeviceDetail.ScopeHardware, DeviceDetail.HardwareKeyWLanMacAddress, WLanMacAddress);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ACAdapter
|
||||
@@ -123,5 +123,22 @@ namespace Disco.BI.Extensions
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Battery
|
||||
/// <summary>
|
||||
/// Gets the Battery Device Detail Value
|
||||
/// </summary>
|
||||
/// <returns>The Battery or null</returns>
|
||||
public static string Battery(this IEnumerable<DeviceDetail> details)
|
||||
{
|
||||
return details.GetDetail(DeviceDetail.ScopeHardware, DeviceDetail.HardwareKeyBattery);
|
||||
}
|
||||
/// <summary>
|
||||
/// Sets the Battery Device Detail Value
|
||||
/// </summary>
|
||||
public static void Battery(this IEnumerable<DeviceDetail> details, Device device, string Battery)
|
||||
{
|
||||
device.SetDetail(DeviceDetail.ScopeHardware, DeviceDetail.HardwareKeyBattery, Battery);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ namespace Disco.Models.Repository
|
||||
public const string HardwareKeyLanMacAddress = "LanMacAddress";
|
||||
public const string HardwareKeyWLanMacAddress = "WLanMacAddress";
|
||||
public const string HardwareKeyACAdapter = "ACAdapter";
|
||||
public const string HardwareKeyBattery = "Battery";
|
||||
|
||||
[Column(Order = 0), Key]
|
||||
public string DeviceSerialNumber { get; set; }
|
||||
|
||||
@@ -11,6 +11,11 @@ namespace Disco.Models.Services.Devices.Exporting
|
||||
{
|
||||
public DeviceExportTypes ExportType { get; set; }
|
||||
public int? ExportTypeTargetId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Adds '=' to the beginning of the string to stop Excel removing the leading zeros
|
||||
/// </summary>
|
||||
public bool ExcelCsvFormat { get; set; }
|
||||
|
||||
// Device
|
||||
[Display(ShortName = "Device", Name = "Serial Number", Description = "The device serial number")]
|
||||
@@ -41,6 +46,8 @@ namespace Disco.Models.Services.Devices.Exporting
|
||||
public bool DetailWLanMacAddress { get; set; }
|
||||
[Display(ShortName = "Details", Name = "AC Adapter", Description = "The AC Adapter associated with the device")]
|
||||
public bool DetailACAdapter { get; set; }
|
||||
[Display(ShortName = "Details", Name = "Battery", Description = "The Battery associated with the device")]
|
||||
public bool DetailBattery { get; set; }
|
||||
|
||||
// Model
|
||||
[Display(ShortName = "Model", Name = "Identifier", Description = "The identifier of the device model associated with the device")]
|
||||
@@ -124,6 +131,7 @@ namespace Disco.Models.Services.Devices.Exporting
|
||||
return new DeviceExportOptions()
|
||||
{
|
||||
ExportType = DeviceExportTypes.All,
|
||||
ExcelCsvFormat = true,
|
||||
DeviceSerialNumber = true,
|
||||
ModelId = true,
|
||||
ProfileId = true,
|
||||
|
||||
@@ -26,6 +26,8 @@ namespace Disco.Models.Services.Devices.Importing
|
||||
DetailWLanMacAddress,
|
||||
[Display(Name = "Device AC Adapter", Description = "The AC Adapter associated with the device")]
|
||||
DetailACAdapter,
|
||||
[Display(Name = "Device Battery", Description = "The Battery associated with the device")]
|
||||
DetailBattery,
|
||||
|
||||
[Display(Name = "Model Identifier", Description = "The identifier of the device model associated with the device")]
|
||||
ModelId,
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace Disco.Services.Devices.Exporting
|
||||
{
|
||||
UserService.GetUser(userId, Database);
|
||||
}
|
||||
catch (Exception) {} // Ignore Errors
|
||||
catch (Exception) { } // Ignore Errors
|
||||
});
|
||||
}
|
||||
|
||||
@@ -74,9 +74,19 @@ namespace Disco.Services.Devices.Exporting
|
||||
foreach (var record in records)
|
||||
{
|
||||
writer.WriteLine();
|
||||
writer.Write(string.Join(",", metadata.Select(m => {
|
||||
writer.Write(string.Join(",", metadata.Select(m =>
|
||||
{
|
||||
var value = m.Item3(record);
|
||||
return (m.Item4 && value != null) ? string.Concat("\"", value, "\"") : value;
|
||||
var isString = m.Item4;
|
||||
|
||||
if (value == null)
|
||||
return null;
|
||||
else if (!isString)
|
||||
return value;
|
||||
else if (Options.ExcelCsvFormat)
|
||||
return string.Concat("=\"", value, "\"");
|
||||
else
|
||||
return string.Concat("\"", value, "\"");
|
||||
})));
|
||||
}
|
||||
}
|
||||
@@ -116,12 +126,17 @@ namespace Disco.Services.Devices.Exporting
|
||||
|
||||
private static IEnumerable<DeviceExportRecord> BuildRecords(IQueryable<Device> Devices)
|
||||
{
|
||||
var deviceDetailHardwareKeys = new List<string> { DeviceDetail.HardwareKeyLanMacAddress, DeviceDetail.HardwareKeyWLanMacAddress, DeviceDetail.HardwareKeyACAdapter };
|
||||
var deviceDetailHardwareKeys = new List<string> {
|
||||
DeviceDetail.HardwareKeyLanMacAddress,
|
||||
DeviceDetail.HardwareKeyWLanMacAddress,
|
||||
DeviceDetail.HardwareKeyACAdapter,
|
||||
DeviceDetail.HardwareKeyBattery
|
||||
};
|
||||
|
||||
return Devices.Select(d => new DeviceExportRecord()
|
||||
{
|
||||
Device = d,
|
||||
|
||||
|
||||
DeviceDetails = d.DeviceDetails.Where(dd => dd.Scope == DeviceDetail.ScopeHardware && deviceDetailHardwareKeys.Contains(dd.Key)),
|
||||
|
||||
ModelId = d.DeviceModelId,
|
||||
@@ -165,7 +180,8 @@ namespace Disco.Services.Devices.Exporting
|
||||
.Where(p => p.PropertyType == typeof(bool))
|
||||
.Select(p => Tuple.Create(p, (DisplayAttribute)p.GetCustomAttributes(typeof(DisplayAttribute), false).FirstOrDefault()))
|
||||
.Where(p => p.Item2 != null && (bool)p.Item1.GetValue(Options))
|
||||
.Select(p => {
|
||||
.Select(p =>
|
||||
{
|
||||
var accessor = allAssessors.First(i => i.Item1 == p.Item1.Name);
|
||||
var columnName = (p.Item2.ShortName == "Device" || p.Item2.ShortName == "Details") ? p.Item2.Name : string.Format("{0} {1}", p.Item2.ShortName, p.Item2.Name);
|
||||
return Tuple.Create(p.Item1.Name, columnName, accessor.Item2, accessor.Item3);
|
||||
@@ -188,12 +204,13 @@ namespace Disco.Services.Devices.Exporting
|
||||
yield return new Tuple<string, Func<DeviceExportRecord, string>, bool>("DeviceFirstEnrolledDate", r => r.Device.EnrolledDate.HasValue ? r.Device.EnrolledDate.Value.ToString(DateTimeFormat) : null, false);
|
||||
yield return new Tuple<string, Func<DeviceExportRecord, string>, bool>("DeviceLastEnrolledDate", r => r.Device.LastEnrolDate.HasValue ? r.Device.LastEnrolDate.Value.ToString(DateTimeFormat) : null, false);
|
||||
yield return new Tuple<string, Func<DeviceExportRecord, string>, bool>("DeviceDecommissionedDate", r => r.Device.DecommissionedDate.HasValue ? r.Device.DecommissionedDate.Value.ToString(DateTimeFormat) : null, false);
|
||||
yield return new Tuple<string, Func<DeviceExportRecord, string>, bool>("DeviceDecommissionedReason", r => r.Device.DecommissionReason.HasValue ? r.Device.DecommissionReason.Value.ToString() : null, true);
|
||||
yield return new Tuple<string, Func<DeviceExportRecord, string>, bool>("DeviceDecommissionedReason", r => r.Device.DecommissionReason.HasValue ? r.Device.DecommissionReason.Value.ToString() : null, true);
|
||||
|
||||
// Details
|
||||
yield return new Tuple<string, Func<DeviceExportRecord, string>, bool>("DetailLanMacAddress", r => r.DeviceDetails.Where(dd => dd.Key == DeviceDetail.HardwareKeyLanMacAddress).Select(dd => dd.Value).FirstOrDefault(), true);
|
||||
yield return new Tuple<string, Func<DeviceExportRecord, string>, bool>("DetailWLanMacAddress", r => r.DeviceDetails.Where(dd => dd.Key == DeviceDetail.HardwareKeyWLanMacAddress).Select(dd => dd.Value).FirstOrDefault(), true);
|
||||
yield return new Tuple<string, Func<DeviceExportRecord, string>, bool>("DetailACAdapter", r => r.DeviceDetails.Where(dd => dd.Key == DeviceDetail.HardwareKeyACAdapter).Select(dd => dd.Value).FirstOrDefault(), true);
|
||||
yield return new Tuple<string, Func<DeviceExportRecord, string>, bool>("DetailBattery", r => r.DeviceDetails.Where(dd => dd.Key == DeviceDetail.HardwareKeyBattery).Select(dd => dd.Value).FirstOrDefault(), true);
|
||||
|
||||
// Model
|
||||
yield return new Tuple<string, Func<DeviceExportRecord, string>, bool>("ModelId", r => r.ModelId.HasValue ? r.ModelId.Value.ToString() : null, false);
|
||||
|
||||
@@ -30,6 +30,7 @@ namespace Disco.Services.Devices.Importing
|
||||
{ DeviceImportFieldTypes.DetailLanMacAddress, typeof(DetailLanMacAddressImportField) },
|
||||
{ DeviceImportFieldTypes.DetailWLanMacAddress, typeof(DetailWLanMacAddressImportField) },
|
||||
{ DeviceImportFieldTypes.DetailACAdapter, typeof(DetailACAdapterImportField) },
|
||||
{ DeviceImportFieldTypes.DetailBattery, typeof(DetailBatteryImportField) },
|
||||
|
||||
{ DeviceImportFieldTypes.ModelId, typeof(ModelIdImportField) },
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ using Disco.Services.Users;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
|
||||
namespace Disco.Services.Devices.Importing.Fields
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
using Disco.Data.Repository;
|
||||
using Disco.Models.Repository;
|
||||
using Disco.Models.Services.Devices.Importing;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
|
||||
namespace Disco.Services.Devices.Importing.Fields
|
||||
{
|
||||
internal class DetailBatteryImportField : DeviceImportFieldBase
|
||||
{
|
||||
private string parsedValue;
|
||||
private string previousValue;
|
||||
|
||||
public override DeviceImportFieldTypes FieldType { get { return DeviceImportFieldTypes.DetailBattery; } }
|
||||
|
||||
public override object RawParsedValue { get { return parsedValue; } }
|
||||
public override string FriendlyValue { get { return parsedValue; } }
|
||||
public override string FriendlyPreviousValue { get { return previousValue; } }
|
||||
|
||||
public override bool Parse(DiscoDataContext Database, IDeviceImportCache Cache, DeviceImportContext Context, int RecordIndex, string DeviceSerialNumber, Device ExistingDevice, Dictionary<DeviceImportFieldTypes, string> Values, string Value)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(Value))
|
||||
parsedValue = null;
|
||||
else
|
||||
{
|
||||
parsedValue = Value.Trim();
|
||||
}
|
||||
|
||||
if (ExistingDevice == null && parsedValue != null)
|
||||
return Success(EntityState.Added);
|
||||
else if (ExistingDevice != null)
|
||||
{
|
||||
var detail = ExistingDevice.DeviceDetails.FirstOrDefault(dd => dd.Scope == DeviceDetail.ScopeHardware && dd.Key == DeviceDetail.HardwareKeyBattery);
|
||||
|
||||
if (detail == null && parsedValue == null)
|
||||
return Success(EntityState.Unchanged);
|
||||
else if (detail == null && parsedValue != null)
|
||||
{
|
||||
return Success(EntityState.Modified);
|
||||
}
|
||||
else if (detail.Value != parsedValue)
|
||||
{
|
||||
previousValue = detail.Value;
|
||||
return Success(EntityState.Modified);
|
||||
}
|
||||
else
|
||||
return Success(EntityState.Unchanged);
|
||||
}
|
||||
else
|
||||
return Success(EntityState.Unchanged);
|
||||
}
|
||||
|
||||
public override bool Apply(DiscoDataContext Database, Device Device)
|
||||
{
|
||||
if (this.FieldAction == EntityState.Added ||
|
||||
this.FieldAction == EntityState.Modified)
|
||||
{
|
||||
|
||||
DeviceDetail detail = Database.DeviceDetails.FirstOrDefault(dd =>
|
||||
dd.DeviceSerialNumber == Device.SerialNumber &&
|
||||
dd.Scope == DeviceDetail.ScopeHardware &&
|
||||
dd.Key == DeviceDetail.HardwareKeyBattery);
|
||||
|
||||
if (detail == null)
|
||||
{
|
||||
detail = new DeviceDetail()
|
||||
{
|
||||
Device = Device,
|
||||
DeviceSerialNumber = Device.SerialNumber,
|
||||
Scope = DeviceDetail.ScopeHardware,
|
||||
Key = DeviceDetail.HardwareKeyBattery
|
||||
};
|
||||
Database.DeviceDetails.Add(detail);
|
||||
}
|
||||
|
||||
detail.Value = parsedValue;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public override int? GuessHeader(DiscoDataContext Database, DeviceImportContext Context)
|
||||
{
|
||||
// column name
|
||||
var possibleColumns = Context.Header
|
||||
.Select((h, i) => Tuple.Create(h, i))
|
||||
.Where(h => h.Item1.Item2 == DeviceImportFieldTypes.IgnoreColumn &&
|
||||
h.Item1.Item1.IndexOf("battery", System.StringComparison.OrdinalIgnoreCase) >= 0);
|
||||
|
||||
return possibleColumns.Select(h => (int?)h.Item2).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,9 +4,7 @@ using Disco.Models.Services.Devices.Importing;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Disco.Services.Devices.Importing.Fields
|
||||
{
|
||||
|
||||
@@ -188,6 +188,7 @@
|
||||
<Compile Include="Devices\Importing\DeviceImportRecord.cs" />
|
||||
<Compile Include="Devices\Importing\Fields\BatchIdImportField.cs" />
|
||||
<Compile Include="Devices\Importing\Fields\AssignedUserIdImportField.cs" />
|
||||
<Compile Include="Devices\Importing\Fields\DetailBatteryImportField.cs" />
|
||||
<Compile Include="Devices\Importing\Fields\DeviceDecommissionedReasonImportField.cs" />
|
||||
<Compile Include="Devices\Importing\Fields\DeviceDecommissionedDateImportField.cs" />
|
||||
<Compile Include="Devices\Importing\Fields\ProfileIdImportField.cs" />
|
||||
@@ -326,7 +327,7 @@
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<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" />
|
||||
<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" />
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -27,6 +27,7 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
const string pLocation = "location";
|
||||
const string pAllowUnauthenticatedEnrol = "allowunauthenticatedenrol";
|
||||
const string pDetailACAdapter = "detailacadapter";
|
||||
const string pDetailBattery = "detailbattery";
|
||||
|
||||
public virtual ActionResult Update(string id, string key, string value = null, bool redirect = false)
|
||||
{
|
||||
@@ -71,6 +72,10 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
Authorization.Require(Claims.Device.Properties.Details);
|
||||
UpdateDetailACAdapter(device, value);
|
||||
break;
|
||||
case pDetailBattery:
|
||||
Authorization.Require(Claims.Device.Properties.Details);
|
||||
UpdateDetailBattery(device, value);
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Invalid Update Key");
|
||||
}
|
||||
@@ -145,6 +150,12 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
return Update(id, pDetailACAdapter, DetailACAdapter, redirect);
|
||||
}
|
||||
|
||||
[DiscoAuthorize(Claims.Device.Properties.Details)]
|
||||
public virtual ActionResult UpdateDetailBattery(string id, string DetailBattery = null, bool redirect = false)
|
||||
{
|
||||
return Update(id, pDetailBattery, DetailBattery, redirect);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Update Properties
|
||||
@@ -258,6 +269,14 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
device.DeviceDetails.ACAdapter(device, ACAdapter.Trim());
|
||||
Database.SaveChanges();
|
||||
}
|
||||
private void UpdateDetailBattery(Disco.Models.Repository.Device device, string Battery)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(Battery))
|
||||
device.DeviceDetails.Battery(device, null);
|
||||
else
|
||||
device.DeviceDetails.Battery(device, Battery.Trim());
|
||||
Database.SaveChanges();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Device Actions
|
||||
|
||||
@@ -3543,6 +3543,12 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
}
|
||||
[NonAction]
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public virtual System.Web.Mvc.ActionResult UpdateDetailBattery()
|
||||
{
|
||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateDetailBattery);
|
||||
}
|
||||
[NonAction]
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public virtual System.Web.Mvc.ActionResult Decommission()
|
||||
{
|
||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Decommission);
|
||||
@@ -3661,6 +3667,7 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public readonly string UpdateAssignedUserId = "UpdateAssignedUserId";
|
||||
public readonly string UpdateAllowUnauthenticatedEnrol = "UpdateAllowUnauthenticatedEnrol";
|
||||
public readonly string UpdateDetailACAdapter = "UpdateDetailACAdapter";
|
||||
public readonly string UpdateDetailBattery = "UpdateDetailBattery";
|
||||
public readonly string Decommission = "Decommission";
|
||||
public readonly string Recommission = "Recommission";
|
||||
public readonly string Delete = "Delete";
|
||||
@@ -3691,6 +3698,7 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public const string UpdateAssignedUserId = "UpdateAssignedUserId";
|
||||
public const string UpdateAllowUnauthenticatedEnrol = "UpdateAllowUnauthenticatedEnrol";
|
||||
public const string UpdateDetailACAdapter = "UpdateDetailACAdapter";
|
||||
public const string UpdateDetailBattery = "UpdateDetailBattery";
|
||||
public const string Decommission = "Decommission";
|
||||
public const string Recommission = "Recommission";
|
||||
public const string Delete = "Delete";
|
||||
@@ -3793,6 +3801,16 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public readonly string DetailACAdapter = "DetailACAdapter";
|
||||
public readonly string redirect = "redirect";
|
||||
}
|
||||
static readonly ActionParamsClass_UpdateDetailBattery s_params_UpdateDetailBattery = new ActionParamsClass_UpdateDetailBattery();
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public ActionParamsClass_UpdateDetailBattery UpdateDetailBatteryParams { get { return s_params_UpdateDetailBattery; } }
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public class ActionParamsClass_UpdateDetailBattery
|
||||
{
|
||||
public readonly string id = "id";
|
||||
public readonly string DetailBattery = "DetailBattery";
|
||||
public readonly string redirect = "redirect";
|
||||
}
|
||||
static readonly ActionParamsClass_Decommission s_params_Decommission = new ActionParamsClass_Decommission();
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public ActionParamsClass_Decommission DecommissionParams { get { return s_params_Decommission; } }
|
||||
@@ -4046,6 +4064,18 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
partial void UpdateDetailBatteryOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string id, string DetailBattery, bool redirect);
|
||||
|
||||
public override System.Web.Mvc.ActionResult UpdateDetailBattery(string id, string DetailBattery, bool redirect)
|
||||
{
|
||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateDetailBattery);
|
||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
|
||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "DetailBattery", DetailBattery);
|
||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect);
|
||||
UpdateDetailBatteryOverride(callInfo, id, DetailBattery, redirect);
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
partial void DecommissionOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string id, int Reason, bool redirect);
|
||||
|
||||
public override System.Web.Mvc.ActionResult Decommission(string id, int Reason, bool redirect)
|
||||
|
||||
@@ -38,6 +38,23 @@
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Battery</th>
|
||||
<td>@if (canConfig)
|
||||
{
|
||||
@Html.TextBox("DeviceDetail_Battery", Model.Device.DeviceDetails.Battery()) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader()
|
||||
<script>
|
||||
$(function () {
|
||||
document.DiscoFunctions.PropertyChangeHelper($('#DeviceDetail_Battery'), 'Unknown', '@Url.Action(MVC.API.Device.UpdateDetailBattery(Model.Device.SerialNumber, null))', 'DetailBattery');
|
||||
});
|
||||
</script>
|
||||
}
|
||||
else
|
||||
{
|
||||
@(Model.Device.DeviceDetails.Battery() ?? "Unknown")
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34011
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
@@ -188,6 +188,95 @@ WriteLiteral("\', \'DetailACAdapter\');\r\n });\r\n
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n " +
|
||||
" <th>Battery</th>\r\n <td>");
|
||||
|
||||
|
||||
#line 43 "..\..\Views\Device\DeviceParts\_Details.cshtml"
|
||||
if (canConfig)
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 45 "..\..\Views\Device\DeviceParts\_Details.cshtml"
|
||||
Write(Html.TextBox("DeviceDetail_Battery", Model.Device.DeviceDetails.Battery()));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 45 "..\..\Views\Device\DeviceParts\_Details.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 45 "..\..\Views\Device\DeviceParts\_Details.cshtml"
|
||||
Write(AjaxHelpers.AjaxSave());
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 45 "..\..\Views\Device\DeviceParts\_Details.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 45 "..\..\Views\Device\DeviceParts\_Details.cshtml"
|
||||
Write(AjaxHelpers.AjaxLoader());
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 45 "..\..\Views\Device\DeviceParts\_Details.cshtml"
|
||||
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <script>\r\n $(function () {\r\n " +
|
||||
" document.DiscoFunctions.PropertyChangeHelper($(\'#D" +
|
||||
"eviceDetail_Battery\'), \'Unknown\', \'");
|
||||
|
||||
|
||||
#line 48 "..\..\Views\Device\DeviceParts\_Details.cshtml"
|
||||
Write(Url.Action(MVC.API.Device.UpdateDetailBattery(Model.Device.SerialNumber, null)));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\', \'DetailBattery\');\r\n });\r\n </" +
|
||||
"script>\r\n");
|
||||
|
||||
|
||||
#line 51 "..\..\Views\Device\DeviceParts\_Details.cshtml"
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 54 "..\..\Views\Device\DeviceParts\_Details.cshtml"
|
||||
Write(Model.Device.DeviceDetails.Battery() ?? "Unknown");
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 54 "..\..\Views\Device\DeviceParts\_Details.cshtml"
|
||||
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </td>\r\n </tr>\r\n </tbody>\r\n <" +
|
||||
|
||||
@@ -32,6 +32,12 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<td>
|
||||
@Html.CheckBoxFor(m => m.Options.ExcelCsvFormat) <label for="Options_ExcelCsvFormat">Microsoft Excel CSV Format</label>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="Devices_Export_Fields" class="form" style="width: 530px; margin-top: 15px;">
|
||||
|
||||
@@ -166,7 +166,24 @@ WriteLiteral(" ");
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n </div>\r\n </td>\r\n </tr" +
|
||||
">\r\n </table>\r\n </div>\r\n");
|
||||
">\r\n <tr>\r\n <th> </th>\r\n " +
|
||||
" <td>\r\n");
|
||||
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 38 "..\..\Views\Device\Export.cshtml"
|
||||
Write(Html.CheckBoxFor(m => m.Options.ExcelCsvFormat));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <label");
|
||||
|
||||
WriteLiteral(" for=\"Options_ExcelCsvFormat\"");
|
||||
|
||||
WriteLiteral(">Microsoft Excel CSV Format</label>\r\n </td>\r\n <" +
|
||||
"/tr>\r\n </table>\r\n </div>\r\n");
|
||||
|
||||
WriteLiteral(" <div");
|
||||
|
||||
@@ -185,13 +202,13 @@ WriteLiteral(" href=\"#\"");
|
||||
WriteLiteral(">(Defaults)</a></h2>\r\n <table>\r\n");
|
||||
|
||||
|
||||
#line 40 "..\..\Views\Device\Export.cshtml"
|
||||
#line 46 "..\..\Views\Device\Export.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 40 "..\..\Views\Device\Export.cshtml"
|
||||
#line 46 "..\..\Views\Device\Export.cshtml"
|
||||
foreach (var optionGroup in optionGroups)
|
||||
{
|
||||
var optionFields = optionGroup.ToList();
|
||||
@@ -209,7 +226,7 @@ WriteLiteral(">\r\n");
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 46 "..\..\Views\Device\Export.cshtml"
|
||||
#line 52 "..\..\Views\Device\Export.cshtml"
|
||||
Write(optionGroup.Key);
|
||||
|
||||
|
||||
@@ -218,13 +235,13 @@ WriteLiteral(" ");
|
||||
WriteLiteral("\r\n");
|
||||
|
||||
|
||||
#line 47 "..\..\Views\Device\Export.cshtml"
|
||||
#line 53 "..\..\Views\Device\Export.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 47 "..\..\Views\Device\Export.cshtml"
|
||||
#line 53 "..\..\Views\Device\Export.cshtml"
|
||||
if (optionFields.Count > 2)
|
||||
{
|
||||
|
||||
@@ -252,7 +269,7 @@ WriteLiteral(" href=\"#\"");
|
||||
WriteLiteral(">NONE</a></span>\r\n");
|
||||
|
||||
|
||||
#line 50 "..\..\Views\Device\Export.cshtml"
|
||||
#line 56 "..\..\Views\Device\Export.cshtml"
|
||||
}
|
||||
|
||||
|
||||
@@ -279,13 +296,13 @@ WriteLiteral(" class=\"none\"");
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
|
||||
#line 58 "..\..\Views\Device\Export.cshtml"
|
||||
#line 64 "..\..\Views\Device\Export.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 58 "..\..\Views\Device\Export.cshtml"
|
||||
#line 64 "..\..\Views\Device\Export.cshtml"
|
||||
foreach (var optionItem in optionFields.Take(itemsPerColumn))
|
||||
{
|
||||
|
||||
@@ -294,40 +311,40 @@ WriteLiteral(">\r\n");
|
||||
#line hidden
|
||||
WriteLiteral(" <li");
|
||||
|
||||
WriteAttribute("title", Tuple.Create(" title=\"", 3553), Tuple.Create("\"", 3584)
|
||||
WriteAttribute("title", Tuple.Create(" title=\"", 3833), Tuple.Create("\"", 3864)
|
||||
|
||||
#line 60 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 3561), Tuple.Create<System.Object, System.Int32>(optionItem.Description
|
||||
#line 66 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 3841), Tuple.Create<System.Object, System.Int32>(optionItem.Description
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 3561), false)
|
||||
, 3841), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">\r\n <input");
|
||||
|
||||
WriteLiteral(" type=\"checkbox\"");
|
||||
|
||||
WriteAttribute("id", Tuple.Create(" id=\"", 3666), Tuple.Create("\"", 3703)
|
||||
, Tuple.Create(Tuple.Create("", 3671), Tuple.Create("Options_", 3671), true)
|
||||
WriteAttribute("id", Tuple.Create(" id=\"", 3946), Tuple.Create("\"", 3983)
|
||||
, Tuple.Create(Tuple.Create("", 3951), Tuple.Create("Options_", 3951), true)
|
||||
|
||||
#line 61 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 3679), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
#line 67 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 3959), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 3679), false)
|
||||
, 3959), false)
|
||||
);
|
||||
|
||||
WriteAttribute("name", Tuple.Create(" name=\"", 3704), Tuple.Create("\"", 3743)
|
||||
, Tuple.Create(Tuple.Create("", 3711), Tuple.Create("Options.", 3711), true)
|
||||
WriteAttribute("name", Tuple.Create(" name=\"", 3984), Tuple.Create("\"", 4023)
|
||||
, Tuple.Create(Tuple.Create("", 3991), Tuple.Create("Options.", 3991), true)
|
||||
|
||||
#line 61 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 3719), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
#line 67 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 3999), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 3719), false)
|
||||
, 3999), false)
|
||||
);
|
||||
|
||||
WriteLiteral(" value=\"true\"");
|
||||
@@ -335,7 +352,7 @@ WriteLiteral(" value=\"true\"");
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 61 "..\..\Views\Device\Export.cshtml"
|
||||
#line 67 "..\..\Views\Device\Export.cshtml"
|
||||
Write(((bool)optionItem.Model) ? "checked " : null);
|
||||
|
||||
|
||||
@@ -343,21 +360,21 @@ WriteLiteral(" ");
|
||||
#line hidden
|
||||
WriteLiteral("/><label");
|
||||
|
||||
WriteAttribute("for", Tuple.Create(" for=\"", 3813), Tuple.Create("\"", 3851)
|
||||
, Tuple.Create(Tuple.Create("", 3819), Tuple.Create("Options_", 3819), true)
|
||||
WriteAttribute("for", Tuple.Create(" for=\"", 4093), Tuple.Create("\"", 4131)
|
||||
, Tuple.Create(Tuple.Create("", 4099), Tuple.Create("Options_", 4099), true)
|
||||
|
||||
#line 61 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 3827), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
#line 67 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 4107), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 3827), false)
|
||||
, 4107), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 61 "..\..\Views\Device\Export.cshtml"
|
||||
#line 67 "..\..\Views\Device\Export.cshtml"
|
||||
Write(optionItem.DisplayName);
|
||||
|
||||
|
||||
@@ -366,7 +383,7 @@ WriteLiteral(">");
|
||||
WriteLiteral("</label></li>\r\n");
|
||||
|
||||
|
||||
#line 62 "..\..\Views\Device\Export.cshtml"
|
||||
#line 68 "..\..\Views\Device\Export.cshtml"
|
||||
}
|
||||
|
||||
|
||||
@@ -384,13 +401,13 @@ WriteLiteral(" class=\"none\"");
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
|
||||
#line 67 "..\..\Views\Device\Export.cshtml"
|
||||
#line 73 "..\..\Views\Device\Export.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 67 "..\..\Views\Device\Export.cshtml"
|
||||
#line 73 "..\..\Views\Device\Export.cshtml"
|
||||
foreach (var optionItem in optionFields.Skip(itemsPerColumn))
|
||||
{
|
||||
|
||||
@@ -399,40 +416,40 @@ WriteLiteral(">\r\n");
|
||||
#line hidden
|
||||
WriteLiteral(" <li");
|
||||
|
||||
WriteAttribute("title", Tuple.Create(" title=\"", 4386), Tuple.Create("\"", 4417)
|
||||
WriteAttribute("title", Tuple.Create(" title=\"", 4666), Tuple.Create("\"", 4697)
|
||||
|
||||
#line 69 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 4394), Tuple.Create<System.Object, System.Int32>(optionItem.Description
|
||||
#line 75 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 4674), Tuple.Create<System.Object, System.Int32>(optionItem.Description
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 4394), false)
|
||||
, 4674), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">\r\n <input");
|
||||
|
||||
WriteLiteral(" type=\"checkbox\"");
|
||||
|
||||
WriteAttribute("id", Tuple.Create(" id=\"", 4499), Tuple.Create("\"", 4536)
|
||||
, Tuple.Create(Tuple.Create("", 4504), Tuple.Create("Options_", 4504), true)
|
||||
WriteAttribute("id", Tuple.Create(" id=\"", 4779), Tuple.Create("\"", 4816)
|
||||
, Tuple.Create(Tuple.Create("", 4784), Tuple.Create("Options_", 4784), true)
|
||||
|
||||
#line 70 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 4512), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
#line 76 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 4792), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 4512), false)
|
||||
, 4792), false)
|
||||
);
|
||||
|
||||
WriteAttribute("name", Tuple.Create(" name=\"", 4537), Tuple.Create("\"", 4576)
|
||||
, Tuple.Create(Tuple.Create("", 4544), Tuple.Create("Options.", 4544), true)
|
||||
WriteAttribute("name", Tuple.Create(" name=\"", 4817), Tuple.Create("\"", 4856)
|
||||
, Tuple.Create(Tuple.Create("", 4824), Tuple.Create("Options.", 4824), true)
|
||||
|
||||
#line 70 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 4552), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
#line 76 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 4832), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 4552), false)
|
||||
, 4832), false)
|
||||
);
|
||||
|
||||
WriteLiteral(" value=\"true\"");
|
||||
@@ -440,7 +457,7 @@ WriteLiteral(" value=\"true\"");
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 70 "..\..\Views\Device\Export.cshtml"
|
||||
#line 76 "..\..\Views\Device\Export.cshtml"
|
||||
Write(((bool)optionItem.Model) ? "checked " : null);
|
||||
|
||||
|
||||
@@ -448,21 +465,21 @@ WriteLiteral(" ");
|
||||
#line hidden
|
||||
WriteLiteral("/><label");
|
||||
|
||||
WriteAttribute("for", Tuple.Create(" for=\"", 4646), Tuple.Create("\"", 4684)
|
||||
, Tuple.Create(Tuple.Create("", 4652), Tuple.Create("Options_", 4652), true)
|
||||
WriteAttribute("for", Tuple.Create(" for=\"", 4926), Tuple.Create("\"", 4964)
|
||||
, Tuple.Create(Tuple.Create("", 4932), Tuple.Create("Options_", 4932), true)
|
||||
|
||||
#line 70 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 4660), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
#line 76 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 4940), Tuple.Create<System.Object, System.Int32>(optionItem.PropertyName
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 4660), false)
|
||||
, 4940), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 70 "..\..\Views\Device\Export.cshtml"
|
||||
#line 76 "..\..\Views\Device\Export.cshtml"
|
||||
Write(optionItem.DisplayName);
|
||||
|
||||
|
||||
@@ -471,7 +488,7 @@ WriteLiteral(">");
|
||||
WriteLiteral("</label></li>\r\n");
|
||||
|
||||
|
||||
#line 71 "..\..\Views\Device\Export.cshtml"
|
||||
#line 77 "..\..\Views\Device\Export.cshtml"
|
||||
}
|
||||
|
||||
|
||||
@@ -487,7 +504,7 @@ WriteLiteral(@" </ul>
|
||||
");
|
||||
|
||||
|
||||
#line 79 "..\..\Views\Device\Export.cshtml"
|
||||
#line 85 "..\..\Views\Device\Export.cshtml"
|
||||
}
|
||||
|
||||
|
||||
@@ -543,7 +560,7 @@ WriteLiteral(" <script>\r\n $(function () {\r\n
|
||||
"pt>\r\n");
|
||||
|
||||
|
||||
#line 165 "..\..\Views\Device\Export.cshtml"
|
||||
#line 171 "..\..\Views\Device\Export.cshtml"
|
||||
}
|
||||
|
||||
|
||||
@@ -552,7 +569,7 @@ WriteLiteral(" <script>\r\n $(function () {\r\n
|
||||
WriteLiteral("</div>\r\n");
|
||||
|
||||
|
||||
#line 167 "..\..\Views\Device\Export.cshtml"
|
||||
#line 173 "..\..\Views\Device\Export.cshtml"
|
||||
if (Model.ExportSessionId != null)
|
||||
{
|
||||
|
||||
@@ -570,7 +587,7 @@ WriteLiteral(" title=\"Export Devices\"");
|
||||
WriteLiteral(">\r\n <h4>");
|
||||
|
||||
|
||||
#line 170 "..\..\Views\Device\Export.cshtml"
|
||||
#line 176 "..\..\Views\Device\Export.cshtml"
|
||||
Write(Model.ExportSessionResult.RecordCount);
|
||||
|
||||
|
||||
@@ -579,7 +596,7 @@ WriteLiteral(">\r\n <h4>");
|
||||
WriteLiteral(" record");
|
||||
|
||||
|
||||
#line 170 "..\..\Views\Device\Export.cshtml"
|
||||
#line 176 "..\..\Views\Device\Export.cshtml"
|
||||
Write(Model.ExportSessionResult.RecordCount != 1 ? "s" : null);
|
||||
|
||||
|
||||
@@ -587,14 +604,14 @@ WriteLiteral(" record");
|
||||
#line hidden
|
||||
WriteLiteral(" were successfully exported.</h4>\r\n <a");
|
||||
|
||||
WriteAttribute("href", Tuple.Create(" href=\"", 9027), Tuple.Create("\"", 9099)
|
||||
WriteAttribute("href", Tuple.Create(" href=\"", 9307), Tuple.Create("\"", 9379)
|
||||
|
||||
#line 171 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 9034), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.Device.ExportRetrieve(Model.ExportSessionId))
|
||||
#line 177 "..\..\Views\Device\Export.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 9314), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.Device.ExportRetrieve(Model.ExportSessionId))
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 9034), false)
|
||||
, 9314), false)
|
||||
);
|
||||
|
||||
WriteLiteral(" class=\"button\"");
|
||||
@@ -620,7 +637,7 @@ WriteLiteral(@" <script>
|
||||
");
|
||||
|
||||
|
||||
#line 185 "..\..\Views\Device\Export.cshtml"
|
||||
#line 191 "..\..\Views\Device\Export.cshtml"
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user