using Masuit.Tools; using System.ComponentModel.DataAnnotations; namespace WIDESEA_StorageBasicService; public class BoxingInfoService : ServiceBase, IBoxingInfoService { public BoxingInfoService(IBoxingInfoRepository BaseDal) : base(BaseDal) { } public async Task AddBoxingInfoAsync(DtBoxingInfo boxingInfo) { WebResponseContent content = new WebResponseContent(); // 验证模型里面数据是否合法,如果不合法抛出异常 var errors = ValidateModel(boxingInfo); if (errors.Count > 0) { foreach (var error in errors) { Console.WriteLine(error.ErrorMessage); } string errorMessage = string.Join(",", errors.Select(e => e.ErrorMessage)); content.Error(errorMessage); } else { var info = await BaseDal.QueryFirstAsync(x=>x.PalletCode == boxingInfo.PalletCode); if (!info.IsNullOrEmpty()) { content.Error("该托盘已存在组盘"); } else { // 添加组盘信息 var result = await BaseDal.AddDataNavAsync(boxingInfo); if (result) { content.OK("添加成功", boxingInfo); } } } return content; } // 验证模型 public static List ValidateModel(object model) { // 创建一个验证结果列表 var validationResults = new List(); // 创建一个验证上下文 var validationContext = new ValidationContext(model, serviceProvider: null, items: null); // 使用验证器尝试验证模型,并将验证结果添加到验证结果列表中 Validator.TryValidateObject(model, validationContext, validationResults, validateAllProperties: true); // 返回验证结果列表 return validationResults; } }