Как отправить запрос IEnumurable в веб-API? - PullRequest
0 голосов
/ 02 августа 2020

Я пытаюсь получить запрос в WeB API, а тип класса запроса - IEnumurable. Я тестирую его с помощью почтальона, но всегда он имеет нулевое значение. Ниже мой фрагмент кода: Когда я удалил IEnumurable из класса запроса, я смог получить значения из POSTMAN.

Код контроллера:

[HttpPost]
[Route("PostTotalLossData")]
public IHttpActionResult PostTotalLossData([FromBody]TotalLossReviewedStatusRequest reviewedStatusReq)
{
    try
    {
        if (reviewedStatusReq != null)
        {
            var result = _iTLTT_BAL.UpdateTotalLossReviewedStatus(reviewedStatusReq);
            //return Ok(result);
            return Ok(reviewedStatusReq);
        }
        else
        {
            Log.Info("Invalid request received, Request : " + reviewedStatusReq);
            return Ok("Invalid request");
        }
    }
    catch (Exception ex)
    {
        Log.Error(ex.Message);
        throw ex;
    }           
}

Класс запроса:

namespace CTS.NextGen.API.TLTT.Models.Request
{
    [Serializable]
    public class TotalLossReviewedStatusRequest : IEnumerable<TotalLossReviewedStatus>
    {
        public List<TotalLossReviewedStatus> totalLossReviewedStatuses { get; set; }

        public IEnumerator<TotalLossReviewedStatus> GetEnumerator()
        {
            return this.totalLossReviewedStatuses.GetEnumerator();
            
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            return this.totalLossReviewedStatuses.GetEnumerator();
            
        }
    }
}

Тело запроса почтальона:

{
"totalLossReviewedStatuses" : [
    {
  "n_claimNumber" : "123456678",
   "n_damageID" : "123rtyui89",
   "b_initiialReviewed" : "12/09/2020",
   "b_reviewed" :"Y",
   "heloo":"N"
    },
    {
  "n_claimNumber" : "123456678",
   "n_damageID" : "123rtyui89",
   "b_initiialReviewed" : "12/09/2020",
   "b_reviewed" :"Y"
    }
 ]
    
}

Пожалуйста, помогите мне с этим.

1 Ответ

0 голосов
/ 02 августа 2020

Тело вашего запроса должно иметь тип array вместо object. Измените тело запроса на ввод как

[    
   {
    "totalLossReviewedStatuses" : [
        {
      "n_claimNumber" : "123456678",
       "n_damageID" : "123rtyui89",
       "b_initiialReviewed" : "12/09/2020",
       "b_reviewed" :"Y",
       "heloo":"N"
        },
        {
      "n_claimNumber" : "123456678",
       "n_damageID" : "123rtyui89",
       "b_initiialReviewed" : "12/09/2020",
       "b_reviewed" :"Y"
        }
     ]
        
    }
    {
       ..........Other objects. If not needed then remove this object declaration
    }
]
...