using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace Infrastructure.Models { public class NotifyModel { [Required] public string Name { get; set; } [Required] public string Number { get; set; } [Required] public string CategoryNumber { get; set; } [Required] public string CategoryName { get; set; } [Required] public string Icon { get; set; } [Required] public string BaseUrl { get; set; } [Required] public string ApiPath { get; set; } public bool IsOnline { get; set; } [Required] public long Timestamp { get; set; } public List Data { get; set; } = new List(); public NotifyModel() { this.Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); } public List> ToList() { var list = new List> { new KeyValuePair(nameof(CategoryName), CategoryName), new KeyValuePair(nameof(CategoryNumber), CategoryNumber), new KeyValuePair(nameof(Name), Name), new KeyValuePair(nameof(Number), Number), new KeyValuePair(nameof(Icon), Icon), new KeyValuePair(nameof(BaseUrl), BaseUrl), new KeyValuePair(nameof(ApiPath), ApiPath), new KeyValuePair(nameof(IsOnline), IsOnline.ToString()), }; for (int i = 0; i < Data.Count; i++) { var item = Data[i]; if (!string.IsNullOrEmpty(item.Value)) { list.Add(new KeyValuePair($"Data[{i}].Type", item.Type.ToString())); list.Add(new KeyValuePair($"Data[{i}].Key", item.Key)); list.Add(new KeyValuePair($"Data[{i}].Name", item.Name)); list.Add(new KeyValuePair($"Data[{i}].Value", item.Value.ToString())); list.Add(new KeyValuePair($"Data[{i}].Unit", item.Unit)); list.Add(new KeyValuePair($"Data[{i}].Description", item.Description)); list.Add(new KeyValuePair($"Data[{i}].Order", item.DisplayOrder.ToString())); } } list.RemoveAll(o => string.IsNullOrEmpty(o.Value)); return list; } } public class DataModel { [Display(Name = "类型")] [Required(ErrorMessage = nameof(RequiredAttribute))] public string Type { get; set; } [Display(Name = "键")] [Required(ErrorMessage = nameof(RequiredAttribute))] public string Key { get; set; } [Display(Name = "名称")] [Required(ErrorMessage = nameof(RequiredAttribute))] public string Name { get; set; } [Display(Name = "值")] [Required(ErrorMessage = nameof(RequiredAttribute))] public string Value { get; set; } [Display(Name = "单位")] public string Unit { get; set; } [Display(Name = "描述")] public string Description { get; set; } [Display(Name = "序号")] public int DisplayOrder { get; set; } } public enum DataValueType { Int, Float, Text, Date } }