using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; using System.Windows.Markup; using XdCxRhDW.Dto.Attribute; namespace XdCxRhDW.Dto { /// /// CPU参估参数模型 /// public class CpuCgDto : IValidatableObject//有复杂验证需要实现IValidatableObject接口,没有则不用 { /// /// 上传后返回的文件名 /// [FileMustExist] public string file1 { get; set; } /// /// 上传后返回的文件名 /// [FileMustExist] public string file2 { get; set; } /// /// 开始样点 /// [RangeLong(0, IncludeMin = true)] public long smpStart { get; set; } /// /// 样点数(0表示文件末尾,0-1之间的小数表示样点百分比) /// [RangeDouble(0, IncludeMin = true)] public double smpCount { get; set; } /// /// 采样率(Hz) /// [RangeDouble(0, 100e6)] public double samplingRate { get; set; } /// /// 信号带宽(Hz) /// [RangeDouble(0, 100e6, IncludeMin = true)] public double BandHz { get; set; } = 0; /// /// 时差中心(us) /// public double dtCenter { get; set; } /// /// 时差范围(us) /// [RangeDouble(0, 100000)] public double dtRange { get; set; } /// /// 频差范围(单位Hz,默认16384) /// [Pow2] public double dfRange { get; set; } = 16384; /// /// 信噪比门限dB /// [RangeDouble(10, 50, IncludeMin = true)] public double snrThreshold { get; set; } /// /// 超时时间(单位秒,默认30秒) /// [RangeInt(1, 600, IncludeMin = true)] public int TimeoutSeconds { get; set; } = 30; /// /// 模型参数自定义验证(复杂的验证逻辑在这里面写) /// /// /// public IEnumerable Validate(ValidationContext validationContext) { //if (this.Age<18) // yield return new ValidationResult("你太年轻了", new[] { nameof(this.Age) }); yield return null; } } }