###BeginCaseStudy###
Case Study: 2
Scenario 2
Background
You are developing an ASP.NET MVC application in Visual Studio 2012 that will be used to
process orders.
Business Requirements
The application contains the following three pages.
• A page that queries an external database for orders that are ready to be processed. The
user can then process the order.
• A page to view processed orders.
• A page to view vendor information.
The application consumes three WCF services to retrieve external data.
Technical Requirements
Visual Studio Solution:
The solution contains the following four projects.
• ExternalQueue: A WCF service project used to communicate with the
external order database.
• OrderProcessor: An ASP.NET MVC project used for order processing and
logging order metadata.
• OrderUpload: A WCF service project used to submit order data to an external
data source.
• Shipping: A WCF service project used to acquire shipping information.
ExternalQueue Project:
Entity Framework is used for data access. The entities are defined in the
ExternalOrders.edmx file as shown in the following diagram.
The project contains two services defined in the following files:
• IExtemalQueueService.cs
• ExternalQueueService.svc.
The ExternalQueue.Helpers namespace contains a definition for a class named
OrderNotFoundException.
OrderProcessor Project:
Entity Framework is used for data access. The entities are defined in the
ProcessedOrders.edmx file as shown in the following diagram.
The classes are contained in the OrderProcessor.Entities namespace.
The project contains the following two controllers:
• InboundQueueControIler.es
• ProcessedOrderController.es
WCF service proxies to the ExternalQueue, Shipping and OrderUpload services have been
generated by using the command prompt. The ExecuteCommandProcedure() method in the
ExternalQueueService.svc file must run asynchronously.
The ProcessedOrderController controller has the following requirements:
• The GetVendorPolicy() method must enforce a 10 minute absolute cache
expiration policy.
• The GetProcessedOrders() method must return a view of the 10 most recently
processed orders.
OrderUpload Project:
The project contains two services defined in the following files:
• IUploadCallbackService.es
• UploadCallbackService.svc
Data Access is maintained in a file named UploadOrder.es.
Shipping Project:
Entity Framework is used for data access. The entities are defined in the
ExternalOrders.edmx file as shown in the following diagram.
The Custom Tool property for ExternalOrders.edmx has been removed.
POCO classes for the Entity Model are located in the ShippingAddress.es file. The POCO
entity must be loaded by using lazy loading.
The project contains two services defined in the following files:
• IShippingService.es
• ShippingService.svc
The IShippingService contract must contain an operation that receives an order number as a
parameter. The operation must return a class named ShippingInfo that inherits from a class
named State.
Application Structure
ExternalQueue\IExternalQueueService.cs
OrderProcessor\IExternalQueueService.svc
ExternalQueue\ProcessedOrderController.cs
OrderProcessor\InboundQueueController.cs
OrderUpload\IUploadCallbackService.cs
OrderUpload\UploadCallbackService.svc
Shipping\IShippingService.cs
Shipping\ShippingAddress.cs
###EndCaseStudy###
The QueueDetail entity type must inherit from the InboundQueue entity type in the
ExternalQueue service project using table-per-type inheritance.
You need to modify the entities in the designer.
What should you do? (Each correct answer presents part of the solution. Choose all that
apply.)
A.
Remove the OrderNum property in InboundQueue.
B.
Remove the OrderNum property in QueueDetail.
C.
Set the QueueDetail BaseType to InboundQueue.
D.
Remove the association between the entities.
E.
Right-click the entities and validate the table mapping.
F.
Set the InboundQueue BaseType to QueueDetail.
Explanation:
http://www.robbagby.com/entity-framework/entity-framework-modeling-table-per-typeinheritance/
Not sure why E is needed….