I want to create one XML Format through below My MVC Controller :
public IHttpActionResult GetCustomerData(CustData model)
{
var XMLCustAdd = "<XML><CustAddr></CustAddr></XML>";
if (model != null)
{
XMLCustDtls = "<XML>" + string.Join("",
"<Customers>" +
"<WedAnniv>" + model.WedAnniv.ToString().Trim() + "</WedAnniv>" +
"<Locality>" + model.Locality.ToString().Trim() + "</Locality>" +
"<HomePhone>" + model.HomePhone.ToString().Trim() + "</HomePhone>" +
"<BirthDate>" + model.BirthDate.ToString().Trim() + "</BirthDate>" +
"<Town>" + model.Town.ToString().Trim() + "</Town>" +
"<Code>" + model.Code.ToString().Trim() + "</Code>" +
"<Country>" + model.Country.ToString().Trim() + "</Country>" +
"<DtOfCreation>" + model.DtOfCreation.ToString().Trim() + "</DtOfCreation>" +
"<Email>" + model.Email.ToString().Trim() + "</Email>" +
"<StreetAddr>" + model.StreetAddr.ToString().Trim() + "</StreetAddr>" +
"<IsMale>" + model.IsMale.ToString().Trim() + "</IsMale>" +
"<MobilePhone>" + model.MobilePhone.ToString().Trim() + "</MobilePhone>" +
"<Nm>" + model.Nm.ToString().Trim() + "</Nm>" +
"<PostalCd>" + model.PostalCd.ToString().Trim() + "</PostalCd>" +
"<State>" + model.State.ToString().Trim() + "</State>" +
"<AddressList>" + string.Join("", "<CustAddr>" + model.AddressList.Select(X =>
"<Addr1>" + X.Addr1.ToString().Trim() + "</Addr1>" +
"<AddressType>" + X.AddressType.ToString().Trim() + "</AddressType>" +
"<City>" + X.City.ToString().Trim() + "</City>" +
"<MobilePhone>" + X.MobilePhone.ToString().Trim() + "</MobilePhone>" +
"<Country>" + X.Country.ToString().Trim() + "</Country>" +
"<DateInsert>" + X.DateInsert.ToString().Trim() + "</DateInsert>" +
"<Code>" + X.CatCd.ToString().Trim() + "</Code>" +
"<Email>" + X.Email.ToString().Trim() + "</Email>" +
"<Contact>" + X.Nm.ToString().Trim() + "</Contact>" +
"<DefaultAddress>" + X.DefaultAddress.ToString().Trim() + "</DefaultAddress>" +
"<Locality>" + X.Locality.ToString().Trim() + "</Locality>" +
"<PostalCd>" + X.PostalCd.ToString().Trim() + "</PostalCd>" ) +
"</CustAddr>"))
+ "</AddressList>" +
"</Customers>"
+ "</XML>";
}
}
AND, the XML Format will look like as below :
<XML>
<Customers>
<WedAnniv></WedAnniv>
<Locality></Locality>
<HomePhone></HomePhone>
<BirthDate></BirthDate>
<City></City>
<Code></Code>
<Country></Country>
<DeviceId></DeviceId>
<DtOfCreation></DtOfCreation>
<Email></Email>
<StreetAddr></StreetAddr>
<IsActive></IsActive>
<IsGuestUser></IsGuestUser>
<IsMale></IsMale>
<LastSession></LastSession>
<LoyaltyBalance></LoyaltyBalance>
<MobilePhone></MobilePhone>
<Nm></Nm>
<PostalCd>sample string 15</PostalCd>
<ProfileImage>sample string 9</ProfileImage>
<State></State>
<AddressList>
<CustAddr>
<Addr1></Addr1>
<AddressType></AddressType>
<City></City>
<MobilePhone></MobilePhone>
<Country></Country>
<DateInsert></DateInsert>
<Code></Code>
<Email></Email>
<Contact></Contact>
<IsBillingAddress></IsBillingAddress>
<DefaultAddress></DefaultAddress>
<Lat></Lat>
<Locality></Locality>
<Long></Long>
<PostalCd></PostalCd>
<State></State>
</CustAddr>
</AddressList>
</Customers>
</XML>
AND MY Output is as below :
<XML>
<Customers>
<WedAnniv></WedAnniv>
<Locality></Locality>
<HomePhone>sample string 16</HomePhone>
<BirthDate></BirthDate>
<Town></Town>
<Code></Code>
<Country>sample string 13</Country>
<DtOfCreation></DtOfCreation>
<Email></Email>
<StreetAddr>sample string 9</StreetAddr>
<IsMale></IsMale>
<MobilePhone>sample string 17</MobilePhone>
<Nm></Nm>
<PostalCd></PostalCd>
<State></State>
<AddressList>
<CustAddr>System.Linq.Enumerable+WhereSelectListIterator`2[System.String]
</CustAddr>
</AddressList>
</Customers>
</XML>
The AddressList contains object list & my trying top read the data & pass in field in above XML. But it is showing iteration error message & unable to pass the data in AddressList.