You need to modify the class to implement the required callback behavior

DRAG DROP

###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.
• IExternalQueueService.es
• ExternalQueueService.svc.
The ExternalQueue.Helpers namespace contains a definition for a class named
OrderNotFound Exception.
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.
• InboundQueueController.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







###EndCaseStudy###

The UploadOrder() method in the UploadCallbackService service is not implementing the
callback behavior defined in the IUploadCallBackService interface. You need to modify the
class to implement the required callback behavior. What should you do? (To answer, drag
the appropriate code segments to the correct location or locations in the answer area. Each
code segments may be used once, more than once, or not at all. You may need to drag the
split bar between panes or scroll to view content.)

DRAG DROP

###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.
• IExternalQueueService.es
• ExternalQueueService.svc.
The ExternalQueue.Helpers namespace contains a definition for a class named
OrderNotFound Exception.
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.
• InboundQueueController.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







###EndCaseStudy###

The UploadOrder() method in the UploadCallbackService service is not implementing the
callback behavior defined in the IUploadCallBackService interface. You need to modify the
class to implement the required callback behavior. What should you do? (To answer, drag
the appropriate code segments to the correct location or locations in the answer area. Each
code segments may be used once, more than once, or not at all. You may need to drag the
split bar between panes or scroll to view content.)

Answer:



Leave a Reply 6

Your email address will not be published. Required fields are marked *


Amar

Amar

Is there any reason to use “single” concurrency mode?

Dhruv

Dhruv

It should be Multiple.

R

R

“OrderUpload: A WCF service project used to submit order data to an external data
source.”

Single = additional messages arrive while the instance services a call, these messages must wait until the service is available or until the messages time out.

Multiple = you must handle synchronization and state consistency at all times.

https://msdn.microsoft.com/en-us/library/system.servicemodel.concurrencymode(v=vs.110).aspx

test

test

So which is it then?

rubenm

rubenm

I think it should be “single” because the UploadOrder() reads a value and updates it, so you need to make sure the value doesnt change while you execute the method.

aleksey

aleksey

it depends of binding type. See
http://stackoverflow.com/questions/6065379/understanding-wcf-servicebehaviorproperty-concurrencymode

“default value is PerCall for bindings not supporting sessions (basicHttpBinding, webHttpBinding, wsHttpBinding without security context or reliable session) or PerSession for bindings supporting sessions (netTcpBinding, netNamedPipeBinding, wsHttpBinding in default configuration using security context).

ConcurrencyMode defines how can an instance of the service be used if multiple requests want to access it. For example PerCall instancing with Multiple concurrency is the same as Single concurrency because each instance is used to serve exactly one request regardless the concurrency setting”