Case Study
This is a case study. Case studies are not timed separately. You can use as much exam time as you would like
to complete each case. However, there may be additional case studies and sections on this exam. You must
manage your time to ensure that you are able to complete all questions included on this exam in the time
provided.
To answer the questions included in a case study, you will need to reference information that is provided in the
case study. Case studies might contain exhibits and other resources that provide more information about the
scenario that is described in the case study. Each question is independent of the other question on this case
study.
At the end of this case study, a review screen will appear. This screen allows you to review your answers and to
make changes before you move to the next sections of the exam. After you begin a new section, you cannot
return to this section.
To start the case study
To display the first question on this case study, click the Next button. Use the buttons in the left pane to explore
the content of the case study before you answer the questions. Clicking these buttons displays information such
as business requirements, existing environment, and problem statements. If the case study has an All
Information tab, note that the information displayed is identical to the information displayed on the subsequent
tabs. When you are ready to answer a question, click the Question button to return to the question.
Background
You are a developer for LitWare, Inc., a game development company. You are developing a backend service
for an online social gaming platform named GamerData. The game is built around point generators, which are
associated with physical landmarks. Players claim point generators which give them a set amount of points per
day.Business Requirements
Mobile App
The game itself runs on various mobile devices and is developed by TailSpin Toys, a company that specializes
in mobile game development. The mobile app will periodically make calls to the GamerData service to find the
five closest point generators that are located less than the specified distance from the player’s current location.
If no point generators are found, the search distance increases until one is found.
The mobile app shows all the point generators owned by each player. The mobile app allows for each player to
search for claimed point generators by player name. This search does not require exact spelling of names. The
details for each claimed generator is shown in the app.
When a player claims a point generator, they should receive an email notification. An Azure Function named
EmailPlayer has been developed to email players with details about recently claimed point generators.
Sponsors
The platform allows business to sponsor point generators within a business location.
Reports
A report named Daily Sponsor Report must be generated each day at midnight. The report must contain a
section for each sponsor. Each sponsor section must contain two subsections.
The first subsection of the report contains the names of the point generators for that sponsor, ordered by the
last time the point generator was claimed. The second subsection contains the current owners for each of the
point generators for the sponsor. Generation of reports must not impact the GamerData service.
Technical Requirements
GamerData Service
All data for the GamerData service is stored in an Azure DocumentDB instance named GamerData. Business
and players interact with the service by using a REST API.
The REST API must:
Produce valid Swagger API specifications for non-obsolete actions.
Be optimized for loading specific point generators.
Follow REST best practices.
Include appropriate terms of service.
Costs for all Azure services must be minimized.
Build and Deployment
The GamerData service will be deployed to Azure in a private VNet.
Security
Sponsors have accounts in an Azure Active Directory (Azure AD) with business-to-consumer (B2C) enabled
named litwaregamerdata.onmicrosoft.com managed by Litware, Inc. for both GamerData and LitWare, Inc.
services.
Only Litware, Inc. developers and automated testing tools should be able to directly access the GamerData
service. All other use of the service must be through Azure API Management. A description of the security
practices used during development, available on Microsoft SharePoint, must be available to users of the API
under the terms of service.Reporting
Azure Search will be used as the source for running reports. The properties of indexes in Azure Search must
match the names of the properties in DocumentDB.
Performance
The Azure DocumentDB must not be used for reporting purposes. All services must perform queries in the data
store when possible.
Application Structure
Startup.cs
Relevant portions of the app files are shown below. (Line numbers in the code segments are included for
reference only and include a two-character prefix that denotes the specific file to which they belong.)
PointController.cs
Relevant portions of the app files are shown below. (Line numbers in the code segments are included for
reference only and include a two-character prefix that denotes the specific file to which they belong.)
PointGenerator.cs
Relevant portions of the app files are shown below. (Line numbers in the code segments are included for
reference only and include a two-character prefix that denotes the specific file to which they belong.)
You need to trigger the EmailPlayer Azure Function when a point generator is claimed.
What are two possible ways to achieve this goal? Each correct answer presents a complete solution.
A.
Insert code after line PC35 to create a Queue trigger and send a queue message.
B.
Create a trigger based on the primary data store.
C.
Create a trigger based on the reporting data store.
D.
Insert code after line PC14 to create a Service Bus trigger and send a message.
B, D, B because you can set a trigger, there is described how to do this:https://docs.microsoft.com/en-us/azure/cosmos-db/programming#client-sdk-support