Can someone please provide C# code in Events,Delegates and Reflection for the be
ID: 3744828 • Letter: C
Question
Can someone please provide C# code in Events,Delegates and Reflection for the below problem.
-----------------
Agent-Policy
XYZ Assurance wants to categorize the policies based on the agent who sold the policy and the Insurance type. Given an Agent name, display the policies that were sold by that agent. Similarly, print the policies in the given Insurance type. Write a program to do the same. They have a list of few policies and want to update the list with a few more policies.
Create a class named Agent with the following attributes
Include appropriate Properties as follows.
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
Include a 2 argument constructor with _id and _name as arguments.
Create a class named InsuranceType with the following attributes
Include appropriate properties.
Include a 2 argument constructor with _id and _type as arguments.
Create a class named Policy with the following attributes
Include appropriate Properties.
Include a 4 argument constructor with _id ,_insuranceType,_agent,_premiumPayable as arguments.
Create a class named PolicyBO and include the following method,
Create a class named Program to test the above classes.
The collection for Policy class is prepopulated with predefined values, and get n details from the user and add it to the predefined list.
Get the policy details as a single string separated by " , " in the order policy id, insuranceType id, insurance type, agent id, agent name, premium payable. Split the input using Split() method, and store the policy details in a list of type Policy.
Create a delegate method named AgentPolicyList(List<Policy> policyList,string _agentName) with List<Policy> as return type, and call the ListPoliciesByAgent method using this delegete method,to get the list of policies for given agent.
Use String.Format("{0, -20}{1, -20}{2:#.00}", "PolicyId","InsuranceType","PremiumPayable"), to display the policies for agent.
Create another delegate method named TypePolicyList(List<Policy> policyList, string _insuranceType) with List<Policy> as return type, and call the ListPoliciesByType method using this delegete method,to get the list of policies for given insurance type.
String.Format("{0, -20}{1, -20}{2:#.00}", PolicyId,InsuranceType,PremiumPayable), to display the policies for insurance type.
Input and Output Format :
First line of the input corresponds to the number of policy details, n.
Next n lines of the input corresponds to the Policy details separated by " , ".
(n+1)th line of the input corresponds to the name of the agent name, to get the policy details.
Last input corresponds to the insurance type, to get the policy details.
All text in bold corresponds to input and rest corresponds to output.
The following logs are already present in the Policy list. These values have to be prefilled before adding new policy details.
Sample Input and Output :
2
2541,3254,Life Insurance,251,Aiden,20000.50
2571,3846,Health Insurance,154,Joseph,15000
Daniel
Policy List
PolicyId InsuranceType PremiumPayable
3401 Health Insurance 30000.00
3504 Life Insurance 20000.00
Life Insurance
Policy List
PolicyId Agent PremiumPayable
2154 Jacob 25000.00
3504 Daniel 20000.00
2541 Aiden 20000.50
--------------------------
Thanks
Data Type Variable Name int _id string _nameExplanation / Answer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
delegate List<Policy> Searching(List<Policy> list,string search);
//........Agent class...............
public class Agent
{
public int _id;
public string _name;
public Agent(int id,string name)
{
_id=id;
_name=name;
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public int ID
{
get { return _id; }
set { _id = value; }
}
}
//........Insurance Type class...............
public class InsuranceType
{
public int _id;
public string _type;
public InsuranceType(int id,string type)
{
_id=id;
_type=type;
}
public string Type
{
get { return _type; }
set { _type = value; }
}
public int ID
{
get { return _id; }
set { _id = value; }
}
}
public class Policy
{
public int _id;
public double _premiumPayable;
public InsuranceType _insuranceType;
public Agent _agent;
public Policy(int id,InsuranceType insuranceType,Agent agent,double premiumPayable)
{
_id=id;
_insuranceType=insuranceType;
_agent=agent;
_premiumPayable=premiumPayable;
}
public double PremiumPayable
{
get { return _premiumPayable; }
set { _premiumPayable = value; }
}
public int ID
{
get { return _id; }
set { _id = value; }
}
}
//..................PolicyBO Class......................
public class PolicyBO
{
public List<Policy> ListPoliciesByAgent(List<Policy> policyList, String name)
{
List<Policy> new1=new List<Policy>();
//Policy p=new Policy();
foreach(Policy p in policyList)
{
if(p._agent.Name==name)
{
new1.Add(p);
}
}
return new1;
}
public List<Policy> ListPoliciesByType(List<Policy> policyList, String type)
{
List<Policy> new1=new List<Policy>();
foreach(Policy p in policyList)
{
if(p._insuranceType.Type==type)
{
new1.Add(p);
}
}
return new1;
}
}
public class Program
{
public static void Main(string[] args)
{
List<Policy> policyList=new List<Policy>();
Agent a;
InsuranceType i_t;
Policy p;
string str;
double pp=25000;
int id;
a=new Agent(154,"jacob");
i_t=new InsuranceType(3158,"life insurance");
p=new Policy(2154,i_t,a,25000);
policyList.Add(p);
a=new Agent(251,"daniel");
i_t=new InsuranceType(3548,"health insurance");
p=new Policy(3401,i_t,a,30000);
policyList.Add(p);
a=new Agent(154,"jacob");
i_t=new InsuranceType(3154,"vehicle insurance");
p=new Policy(2549,i_t,a,15000);
policyList.Add(p);
a=new Agent(251,"daniel");
i_t=new InsuranceType(3158,"life insurance");
p=new Policy(3504,i_t,a,20000);
policyList.Add(p);
a=new Agent(624,"andrew");
i_t=new InsuranceType(3548,"health insyrance");
p=new Policy(2501,i_t,a,35000);
policyList.Add(p);
a=new Agent(624,"andrew");
i_t=new InsuranceType(3154,"vehicle insurance");
p=new Policy(2509,i_t,a,27000);
policyList.Add(p);
/*.......................
.....using delegates.....
.......................*/
PolicyBO pb=new PolicyBO();
List<Policy> found=new List<Policy>();
string search;
//Searching policies by agent name
Searching sc=new Searching(pb.ListPoliciesByAgent);
Console.Write("Enter a name:");
search=Console.ReadLine();
found=sc(policyList,search);
Console.WriteLine("ID InsuranceType PremiumBayable ");
foreach(Policy res in found)
{
Console.WriteLine(res.ID+" "+res._insuranceType.Type+" "+res.PremiumPayable+" ");
}
//Searching policies by Insurance Type
sc=new Searching(pb.ListPoliciesByType);
Console.Write("Enter Insurance Type:");
search=Console.ReadLine();
found=sc(policyList,search);
Console.WriteLine("ID InsuranceType PremiumBayable ");
foreach(Policy res in found)
{
Console.WriteLine(res.ID+" "+res._insuranceType.Type+" "+res.PremiumPayable+" ");
}
Console.WriteLine(" End ");
}
}