Модельные классы в ASP.NET Core и Visual Studio - PullRequest
0 голосов
/ 15 октября 2018

У меня есть вызов API, который возвращает следующий ответ:

{
    "MenModel":[{"Id":"123"}],
    "WomenModel":[{"Id":"456"}],
    "AuthenticationResponse":0,
    "InstanceId":"14976bc0-28ac-4a57-9dfe-93ff0dd39d65"
}

Мне нужно обновить ответ так, чтобы MenModel и WomenModel были включены в модель следующим образом:

{
    "Model": {
        "MenModel[{"Id":"123"}],
        "WomenModel":[{"Id":"456"}]
    },
    "AuthenticationResponse":0,
    "InstanceId":"14976bc0-28ac-4a57-9dfe-93ff0dd39d65"
}

Как создать родительскую модель и включить в нее дочерние модели?

Существующий код:

Класс ответа:

public class GetValuesResponse 
{
    public GetWomenModel WomenModel { get; set; }
    public GetMenModel MenModel { get; set; }

    public GetValuesResponse()
    {
    }
}

Класс обработчика:

protected async Task<GetValuesResponse> XYZ(GetValuesRequest request)
{
    var response = new GetValuesResponse();
    var women = await _databaseWomenRepository.SelectWomenAsync();
    var men = await _databaseAppSubmittersRepository.SelectMenAsync();
    response.WomenModel = new GetWomenModel(women);
    response.MenModel = new GetMenModel(men);
    return response;
}

Класс модели:

public class GetWomenModel : List<WomenModel>
{
    public GetWomenModel(IEnumerable<Women> entities)
    {
        foreach (var entity in entities)
        {
            var id = new WomenModel(entity);
            this.Add(id);
        }
    }
}

public class WomenModel
{
    public WomenModel(Women entity)
    {
        Id = entity.Id;
    }

    public Guid Id { get; set; }
}

1 Ответ

0 голосов
/ 15 октября 2018

Просто добавьте еще один класс, который выступает в качестве родительской модели для MenModel и WomenModel:

public class PeopleModel
{
    public GetWomenModel WomenModel { get; set; }
    public GetMenModel MenModel { get; set; }
}

Тогда ваш класс GetValuesResponse станет:

public class GetValuesResponse
{
    public PeopleModel Model { get; set; }

    public GetValuesResponse()
    {
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...