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;
}
}
}