У меня 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; }
...
}
У меня есть 3 источника данные и примените logi c перед сохранением, скажем, Gender, так что, если вся исходная информация содержит Gender как «Мужской / Женский», а не «M / F», я хочу заполнить Gender of UserDto этим значением.
Я думал, что буду применять логи c как:
UserDto user = new UserDto {
Gender = (baseDto.Gender == "M") ? baseDto.Gender : ((empEntryDto.Gender == "M") ? empEntryDto.Gender : empCsvDto.Gender);
};
Но мне это не кажется хорошим способом.
Как этого можно добиться более разумным способом ? Я искал Json атрибут свойства, но не могу применить такую логику c.