You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/projects/IoT.Shared/Application/Models/EditCommandModel.cs

72 lines
2.1 KiB

using Infrastructure.Application;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace Application.Models
{
[Display(Name = "命令")]
public class EditCommandModel : EditModel
{
[DataType("SelectList")]
[Display(Name = "节点")]
[Required(ErrorMessage = nameof(RequiredAttribute))]
public Guid? NodeId { get; set; }
[DataType("SelectList")]
[Display(Name = "设备")]
[Required(ErrorMessage = nameof(RequiredAttribute))]
public Guid? DeviceId { get; set; }
[DataType("SelectList")]
[Display(Name = "Api")]
[Required(ErrorMessage = nameof(RequiredAttribute))]
public Guid? ApiId { get; set; }
[Display(Name = "命令名称")]
[Required(ErrorMessage = nameof(RequiredAttribute))]
public string Name { get; set; }
[Display(Name = "序号")]
public int DisplayOrder { get; set; }
[Display(Name = "隐藏")]
public bool Disabled { get; set; }
[HiddenInput(DisplayValue = false)]
[ScaffoldColumn(true)]
public string QueryString { get; set; }
[Display(Name = "参数", Order = 50)]
[ScaffoldColumn(false)]
public List<EditApiParameterModel> Parameters { get; set; } = new List<EditApiParameterModel>();
[HiddenInput(DisplayValue = false)]
[ScaffoldColumn(true)]
public string NodeNumber { get; set; }
[HiddenInput(DisplayValue = false)]
[ScaffoldColumn(true)]
public string DeviceNumber { get; set; }
[HiddenInput(DisplayValue = false)]
[ScaffoldColumn(true)]
public string ApiName { get; set; }
public string GetQueryString()
{
if (this.Parameters.Any())
{
var queryString = string.Empty;
foreach (var item in this.Parameters)
{
queryString += $"&{item.Name}={item.Value}";
}
return queryString.TrimStart('&');
}
return null;
}
}
}