Как вернуть ListAsyn c как объект - PullRequest
0 голосов
/ 03 августа 2020

Итак, в настоящее время этот метод получает тип venutype и выводит его имя, изображение и cafeID этого места.

в настоящее время он возвращается как массив, но я хочу вернуть его как объект, но не был уверен как ответить на простой вопрос, но я уже некоторое время смотрю на него.

{
public class VenueTypeResponse
{
    public string Name { get; set; }
    public string ImageUrl { get; set; }
    public int id { get; set; }
}

}

   public VenueService(EVouchContext context)
    {
        _context = context;
    }

    //Gets venuetype and outputs the name, image and cafeID of that venue. 
    public async Task<List<VenueTypeResponse>> GetVenueType()
    {
        return await _context.CafeType.Select(s => new VenueTypeResponse()
        {
            id = s.CafeTypeId,
            Name = s.Name,
            ImageUrl = s.ImageUrl     
        }).ToListAsync();
    }

Я пробовал удалить и вернуть его как .FirstorDefault, но явно возвращает только первый тип места проведения, а не все из них. Любые предложения были бы замечательными! :)

Мне нужен ответ

{
  data: [ 
    {
      id : 1,
      name : "Take aways",
      imageUrl : "https://..jpg"
    },
    {
      id : 2,
      name : "Desserts",
      imageUrl : "https://..jpg"
    },
    {
      ...
    },
    {
      ...
    }   
  ],
  meta: {
    pageTotal: 1,
    pageCurrent: 1  
  }
}

Ответ, который я получаю

[
    {
        "name": "Restaurant",
        "imageUrl": "https:..",
        "id": 1
    },
    {
        "name": "Takeaway",
        "imageUrl": "https://...",
        "id": 2
    },
    ...
]

1 Ответ

2 голосов
/ 03 августа 2020

Вам нужно создать объект, содержащий ваш список, примерно так:

public class Response
{
    [JsonProperty("data")]
    public List<VenueTypeResponse> Data { get; set; }

    [JsonProperty("meta")]
    public ResponseMeta Meta { get; set; }
}

public class ResponseMeta
{
    [JsonProperty("pageTotal")]
    public int PageTotal { get; set; }

    [JsonProperty("pageCurrent")]
    public int PageCurrent { get; set; }
}

, а затем либо вернуть его из вашего метода, либо обернуть результат этого метода в этот объект, прежде чем возвращать его с вашей конечной точки.

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