我有3个API调用,所有调用都返回用户数据的响应。我正在以3种不同的DTO结构捕获数据:
public class BaseUserDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender{ get; set; }
public string Email{ get; set; }
...
}
public class EmpEntryDto
{
[JsonProperty("Legal_First_Name")]
public string LegalFirstName { get; set; }
[JsonProperty("Legal_Last_Name")]
public string LegalLastName { get; set; }
[JsonProperty("Gender")]
public string Gender { get; set; }
[JsonProperty("Email")]
public string Email{ get; set; }
...
}
public class EmpCsvDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender{ get; set; }
public string Email{ get; set; }
...
}
最后一个DTO,我正在转换为Azure存储实体:
public class UserDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender{ get; set; }
public string Email { get; set; }
...
}
在存储诸如Gender之类的信息之前,我已经合并了3个数据源并应用了逻辑,因此,如果所有源信息都包含Gender为“ Male / Female”而不是“ M / F”,则我想在UserDto中填充Gender该值。
我想我将逻辑应用于:
UserDto user = new UserDto {
Gender = (baseDto.Gender == "M") ? baseDto.Gender : ((empEntryDto.Gender == "M") ? empEntryDto.Gender : empCsvDto.Gender);
};
但这对我来说似乎不是一个好方法。
该如何以更智能的方式实现?我搜索了Json属性属性,但是无法应用这种逻辑。