- Open WCF service host project that you created OR create one based on instructions here.
- Add a new project to the current solution: Right click Solution on Solution Explorer > Add > Add New Project
- Select Console Application template under Visual C# > Windows templates
- Change the project name to ConsoleClient and click OK
- In Solution Explorer, under ConsoleClient project, right click References and select Add Reference...
- Add reference to ProductServiceLibrary, System.ServiceModel and System.ServiceModel.Web
- In the Program.cs file,
- add using System.ServiceModel; **
- add using System.ServiceModel.Web;
- add using ProductServiceLibrary; **
- Add the following code
namespace ConsoleClient
{
class Program
{
static void Main(string[] args)
{
WebChannelFactory<IProductService> factory = new WebChannelFactory<IProductService>(
new Uri("http://localhost:8733/Design_Time_Addresses/ProductServiceLibrary/ProductService"));
IProductService client = factory.CreateChannel();
Console.WriteLine("Press 1 to Add | 2 to List All | 3 to List by Product | 0 to Exit");
Console.Write("Select an option : ");
string opt = Console.ReadLine();
while (!opt.Equals("0"))
{
switch (opt)
{
case "1":
Console.Write("Id:");
string id = Console.ReadLine();
Console.Write("Product Code:");
string code = Console.ReadLine();
Console.Write("Product Name:");
string name = Console.ReadLine();
Console.Write("Your Review:");
string review = Console.ReadLine();
ProductReview pr = new ProductReview();
pr.Id = id;
pr.ProductCode = code;
pr.ProductName = name;
pr.Review = review;
client.SubmitReview(pr);
Console.WriteLine("Thank you for your product review.");
break;
case "2":
List<ProductReview> allPrs = client.ListAllReview();
foreach (var item in allPrs)
{
Console.WriteLine(" Review Id:{0} \n Product Code:{1} \n Product Name:{2} \n Product Review: {3} ", item.Id, item.ProductCode, item.ProductName, item.Review);
}
break;
case "3":
Console.Write("Product Code:");
string pCode = Console.ReadLine();
IEnumerable<ProductReview> prsByProduct = client.ListReviewByProduct(pCode);
foreach (var item in prsByProduct)
{
Console.WriteLine("Review Id:{0} \n Product Code:{1} \n Product Name:{2} \n Product Review: ", item.Id, item.ProductCode, item.ProductName, item.Review);
}
break;
default:
Console.WriteLine("Invalid option");
break;
}
Console.WriteLine();
Console.WriteLine("Press 1 to Add | 2 to List All | 3 to List by Product | 0 to Exit");
Console.Write("Select an option : ");
opt = Console.ReadLine();
}
}
}
}
{
class Program
{
static void Main(string[] args)
{
WebChannelFactory<IProductService> factory = new WebChannelFactory<IProductService>(
new Uri("http://localhost:8733/Design_Time_Addresses/ProductServiceLibrary/ProductService"));
IProductService client = factory.CreateChannel();
Console.WriteLine("Press 1 to Add | 2 to List All | 3 to List by Product | 0 to Exit");
Console.Write("Select an option : ");
string opt = Console.ReadLine();
while (!opt.Equals("0"))
{
switch (opt)
{
case "1":
Console.Write("Id:");
string id = Console.ReadLine();
Console.Write("Product Code:");
string code = Console.ReadLine();
Console.Write("Product Name:");
string name = Console.ReadLine();
Console.Write("Your Review:");
string review = Console.ReadLine();
ProductReview pr = new ProductReview();
pr.Id = id;
pr.ProductCode = code;
pr.ProductName = name;
pr.Review = review;
client.SubmitReview(pr);
Console.WriteLine("Thank you for your product review.");
break;
case "2":
List<ProductReview> allPrs = client.ListAllReview();
foreach (var item in allPrs)
{
Console.WriteLine(" Review Id:{0} \n Product Code:{1} \n Product Name:{2} \n Product Review: {3} ", item.Id, item.ProductCode, item.ProductName, item.Review);
}
break;
case "3":
Console.Write("Product Code:");
string pCode = Console.ReadLine();
IEnumerable<ProductReview> prsByProduct = client.ListReviewByProduct(pCode);
foreach (var item in prsByProduct)
{
Console.WriteLine("Review Id:{0} \n Product Code:{1} \n Product Name:{2} \n Product Review: ", item.Id, item.ProductCode, item.ProductName, item.Review);
}
break;
default:
Console.WriteLine("Invalid option");
break;
}
Console.WriteLine();
Console.WriteLine("Press 1 to Add | 2 to List All | 3 to List by Product | 0 to Exit");
Console.Write("Select an option : ");
opt = Console.ReadLine();
}
}
}
}
Enabling Multiple StartUp projects
- In solution explorer, right click on the solution and select Properties
- Select Multiple Startup Projects option in Common Properties > Startup Project
- For ConsoleHost project change the action to Start and for ConsoleClient project change the action to Start.
- Reorder ConsoleHost so that it is above ConsoleClient, therefore starts before ConsoleClient.
Comments
Post a Comment