Hi Team,
I have different list objects that I want to add child list object values to parent level
This is my list data objects
using System;
using System.Collections.Generic;
using System.Text;
namespace ChildNestedChild
{
public class GenerateResponse
{
public List<MainParent> GetMainParent()
{
List<MainParent> lstMainParent = new List<MainParent>()
{
new MainParent(){ MaParentId= 100,Name="Jagadeesh",Age="60"},
new MainParent(){ MaParentId= 101,Name="Narayana",Age="60"},
new MainParent(){ MaParentId= 102,Name="Satyanarayana",Age="90"},
new MainParent(){ MaParentId= 103,Name="Subbu",Age="70"}
};
return lstMainParent;
}
public List<ChildParent> GetChildParent()
{
List<ChildParent> lstMainParent = new List<ChildParent>()
{
new ChildParent(){ ChildParentId= 200,Name="Mahesh",Age="30",MaParentId=100},
new ChildParent(){ ChildParentId= 201,Name="Siriya",Age="60",MaParentId=102},
new ChildParent(){ ChildParentId= 202,Name="Sukanya",Age="60",MaParentId=101},
new ChildParent(){ ChildParentId= 203,Name="Rajesh",Age="60",MaParentId=103}
};
return lstMainParent;
}
public List<MainChild> GetMainChild()
{
List<MainChild> lstMainParent = new List<MainChild>()
{
new MainChild(){ MainChildId= 300,Name="Rudu",Age="3",ChildParentId=200},
new MainChild(){ MainChildId= 301,Name="Nahel",Age="6",ChildParentId=201},
new MainChild(){ MainChildId= 303,Name="Bhanu",Age="12",ChildParentId=202},
};
return lstMainParent;
}
public List<Child> GetChild()
{
List<Child> lstMainParent = new List<Child>()
{
new Child(){ MainChildId= 300,Name="Kiran",Age="3",Id=400},
new Child(){ MainChildId= 301,Name="Parakash",Age="6",Id=401}
};
return lstMainParent;
}
}
}
This is my response calss that i need to return as XML or Json format
using System;
using System.Collections.Generic;
using System.Text;
namespace ChildNestedChild
{
public class FinalResponse { public MainParent MainParent { get; set; } }
public class MainParent
{
public int MaParentId { get; set; }
public string Name { get; set; }
public string Age { get; set; }
public List<ChildParent> ChildParent { get; set; }
}
public class ChildParent
{ public int MaParentId { get; set; }
public int ChildParentId { get; set; }
public string Name { get; set; }
public string Age { get; set; }
public List<MainChild> MainChild { get; set; }
}
public class MainChild
{
public int MainChildId {get;set;}
public int ChildParentId { get; set; }
public string Name { get; set; }
public string Age { get; set; }
public List<Child> Child { get; set; }
}
public class Child
{
public int Id { get; set; }
public int MainChildId { get; set; }
public string Name { get; set; }
public string Age { get; set; }
}
}
What I have tried:
I have tried to loop but not able to add items to my final class
using Newtonsoft.Json;
using System;
using System.Linq;
using System.Collections.Generic;
namespace ChildNestedChild
{
class Program
{
static void Main(string[] args)
{
GenerateResponse GenerateResponse = new GenerateResponse();
var lstMainParent = GenerateResponse.GetMainParent();
var lstChildParent = GenerateResponse.GetChildParent();
var lstMainChild = GenerateResponse.GetMainChild();
var lstChild = GenerateResponse.GetChild();
ChildNestedChild.FinalResponse obj = new ChildNestedChild.FinalResponse();
foreach (var mainParet in lstMainParent)
{
foreach (var childParent in lstChildParent)
{
if (mainParet.MaParentId.Equals(childParent.MaParentId))
{
mainParet.ChildParent.Add(childParent);
foreach (var mainChild in lstMainChild)
{
if (childParent.ChildParentId.Equals(mainChild.ChildParentId))
{
obj.MainParent.ChildParent = mainParet.ChildParent.Add(childParent);
foreach (var child in lstChild)
{
if (child.MainChildId.Equals(mainChild.MainChildId))
{
mainChild.Child.Add(child);
break;
}
}
break;
}
}
break;
}
}
}
string v = Newtonsoft.Json.JsonConvert.SerializeObject(obj, Formatting.Indented);
Console.WriteLine(v);
Console.Read();
}
}
}
I have copied the complete code here
Could you please suggest the best way to handle this