Как использовать Linq добавить данные списка в список подкласса? - PullRequest
0 голосов
/ 25 сентября 2018

Я хочу добавить данные списка (из класса) в список подклассов для отправки JSON FORMAT в другие API.

Класс

public class InPaymentDetailResponse
{
       public List<InPaymentDetail> Data { get; set; }        
}

public class InPaymentDetail
{
       public string runningno { get; set; }
       public decimal totalpremium { get; set; }
}

public class InformationRequest
{        
    ..... 
    ..... 
    public List<CreateDetailRequest> _detailData { get; set; }
    public ExPaymentRequest _payment { get; set; }
}

public class ExPaymentRequest
{
   .....
   .....    
   public ExCashtransaction _cash { get; set; }

}

public class ExCashtransaction
{        
     public string createby { get; set; }
     public DateTime createdate { get; set; }
     public List<ExCashtransactionDetailsRequest> details { get; set; }
}

public class ExCashtransactionDetailsRequest
{
        public string runningno { get; set; }
        public decimal amount { get; set; }
}

КодC #

private async Task<.....> CreateInfo(InformationRequest r)
{

InPaymentDetailResponse resPaymentDetail = new InPaymentDetailResponse();
resPaymentDetail.Data = new List<InPaymentDetail>();

foreach (var item in r._detailData)
{
    .....
    ..... //Process Data
    .....

    var resPaymentDetailData = new InPaymentDetail
    {
        //Add List Data To New Object
        runningno = item.runningno,
        totalpremium = item.totalpremium
    };
    resPaymentDetail.Data.Add(resPaymentDetailData);
}

HttpResponseMessage response = new HttpResponseMessage();
foreach (var res in resPaymentDetail.Data.ToList())
{
     //i want add
     //req._payment._cash.details.runningno = res.runningno  //Ex. 10
     //req._payment._cash.details.amount = res.amount  //Ex. 99.9

     //next loop
     //req._payment._cash.details.runningno = res.runningno  //Ex. 20
     //req._payment._cash.details.amount = res.amount  //Ex. 23.2
}

//sent to other api
response = await client.PostAsJsonAsync("", req._payment._cash);

.....
.....

}

я хочу получить код результата при добавлении данных списка в req._payment._cash: (потому что использовать его в следующем процессе)

"createby": "system",
  "createdate": 26/09/2018",
  "details": [
    {
      "runningno": "10", //before add data to list is null
      "amount": 99.9 //before add data to list is null
    },
     {
      "runningno": "20", //before add data to list is null
      "amount": 23.2 //before add data to list is null
     }
   ]

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

1 Ответ

0 голосов
/ 25 сентября 2018
List<ExCashtransactionDetailsRequest> detailsObj = new List<ExCashtransactionDetailsRequest>();

foreach (var res in resPaymentDetail.Data.ToList())
{

detailsObj.Add(new  ExCashtransactionDetailsRequest(){ runningno  =res.runningno, amount = res.amount });
}

и, наконец, добавьте детали объекта в вашу собственность

req._payment._cash.details = detailsObj;
...