62,041
社区成员
发帖
与我相关
我的任务
分享
private static List<CZCombineDN> CheckList(List<CZCombineDN> uploadDataList)
{
var SOLDTOCUSTOMERList = uploadDataList.Select(o => o.SOLDTOCUSTOMER.FieldText).Distinct();
if (SOLDTOCUSTOMERList.Count() > 1)
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.SOLDTOCUSTOMER.CheckResult = false;
o.SOLDTOCUSTOMER.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
if (SOLDTOCUSTOMERList.Any(x => string.IsNullOrEmpty(x)))
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.SOLDTOCUSTOMER.CheckResult = false;
o.SOLDTOCUSTOMER.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
var DESTINATIONList = uploadDataList.Select(o => o.DESTINATION.FieldText).Distinct();
if (DESTINATIONList.Count() > 1)
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.DESTINATION.CheckResult = false;
o.DESTINATION.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
if (DESTINATIONList.Any(x => string.IsNullOrEmpty(x)))
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.DESTINATION.CheckResult = false;
o.DESTINATION.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
var ETADATEList = uploadDataList.Select(o => o.ETADATE.FieldText).Distinct();
if (ETADATEList.Count() > 1)
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.ETADATE.CheckResult = false;
o.ETADATE.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
if (ETADATEList.Any(x => string.IsNullOrEmpty(x)))
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.ETADATE.CheckResult = false;
o.ETADATE.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
return uploadDataList;
}
public void Fun(List<CZCombineDN> uploadDataList,string strName)
{
strName = "DESTINATION";
var list = uploadDataList.Select(a => a.DESTINATION).ToList(); //这个判断的DESTINATION要怎么定义变量替换?还是说可以设置特性根据特性怎么处理,比如DESTINATION属性上有NoEqualityAttribute
if (list.Count() > 0)
{
uploadDataList.ForEach(o =>
{
Fun2<FieldCheck>(o, strName);
});
}
}
public void Fun2<T>(CZCombineDN ud, string propName) where T : FieldCheck
{
FieldCheck data = (FieldCheck)ud.GetType().GetProperty(propName).GetValue(ud, null);
data.CheckResult = false;
data.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = "xxxx" });
}
public void Fun(List<UploadData> uploadDataList)
{
uploadDataList.ForEach(o =>
{
o.CheckResult = false;
Fun2<SOLDTOCUSTOMER>(o);
});
}
public void Fun2<T>(UploadData ud)
where T: IGen
{
string propName = typeof(T).Name;
IGen obj = ud.GetPropertyValue(propName) as IGen;
obj.CheckResult = false;
obj.CheckMsg.Add(new CheckMsg() { MsgType = "Failure", Msg = "xxxx" });
}
public interface IGen
{
bool CheckResult { get; set; }
List<CheckMsg> CheckMsg { get; set; }
}
public class SOLDTOCUSTOMER : IGen
{
public bool CheckResult { get; set; }
public List<CheckMsg> CheckMsg { get; set; }
}
public class Test
{
public void Run()
{
List<UploadData> uploadDataList = new List<UploadData>();
Fun(uploadDataList);
}
public void Fun(List<UploadData> uploadDataList)
{
uploadDataList.ForEach(o =>
{
o.CheckResult = false;
Fun2<SOLDTOCUSTOMER>(o, "SOLDTOCUSTOMER");
});
}
public void Fun2<T>(UploadData ud, string propName)
where T: IGen
{
IGen obj = ud.GetPropertyValue(propName) as IGen;
obj.CheckResult = false;
obj.CheckMsg.Add(new CheckMsg() { MsgType = "Failure", Msg = "xxxx" });
}
}
T t = new T();
// 获得此模型的公共属性
PropertyInfo[] propertys = t.GetType().GetProperties();
foreach (PropertyInfo pi in propertys){
FieldCheck data = (FieldCheck)pi.GetValue(item, null);
string resourceKey = pi.Name;
if (resourceKey == "传入的值")
{
这里怎么写?
}
}
private static List<CZCombineDN> CheckList(List<CZCombineDN> uploadDataList)
{
var SOLDTOCUSTOMERList = uploadDataList.Select(o => o.SOLDTOCUSTOMER.FieldText).Distinct();
if (SOLDTOCUSTOMERList.Count() > 1)
{
Fun( uploadDataList, "SOLDTOCUSTOMER");
}
if (SOLDTOCUSTOMERList.Any(x => string.IsNullOrEmpty(x)))
{
Fun( uploadDataList, "SOLDTOCUSTOMER");
}
var DESTINATIONList = uploadDataList.Select(o => o.DESTINATION.FieldText).Distinct();
if (DESTINATIONList.Count() > 1)
{
Fun( uploadDataList, "DESTINATION");
}
if (DESTINATIONList.Any(x => string.IsNullOrEmpty(x)))
{
Fun( uploadDataList, "DESTINATION");
}
var ETADATEList = uploadDataList.Select(o => o.ETADATE.FieldText).Distinct();
if (ETADATEList.Count() > 1)
{
Fun( uploadDataList, "ETADATE");
}
if (ETADATEList.Any(x => string.IsNullOrEmpty(x)))
{
Fun( uploadDataList, "ETADATE");
}
return uploadDataList;
}
var SOLDTOCUSTOMERList = uploadDataList.Select(o => o.SOLDTOCUSTOMER.FieldText).Distinct();
//这个判断不相等就全部标记为false,这个是对的
if (SOLDTOCUSTOMERList.Count() > 1)
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.SOLDTOCUSTOMER.CheckResult = false;
o.SOLDTOCUSTOMER.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
//这个先判断为空,然后循环按理说应该是全部都标记了false才对,结果只有为空的标记了是为什么,虽然我想要的确实是这个效果
if (SOLDTOCUSTOMERList.Any(x => string.IsNullOrEmpty(x)))
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.SOLDTOCUSTOMER.CheckResult = false;
o.SOLDTOCUSTOMER.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}