###BeginCaseStudy###
Testlet 1
Background
You are developing an online bookstore web application that will be used by your company’s customers.
Technical Requirements
General requirements:
The web store application must be an ASP.NET MVC application written in Visual Studio.
The application must connect to a Microsoft SQL database.
TheGetTop100Books()method is mission critical and must return data as quickly as possible. It should take
advantage of fast, forward-only, read-only methods of reading data.
TheImportBooks()method must keep a copy of the data that can be accessed while new books are being
imported without blocking reads.
TheCreateMonthlyTotalsReport()method must lock the data and prevent others from updating or inserting
new rows until complete.
The college textbook area of the web application must get data from a daily updated CSV file.
The children’s book area of the web application must get data directly from a local database. It must use a
connection string. It must also support access to the stored procedures on a database. Further, it is required
to have strongly typed objects. Finally, it will require access to databases from multiple vendors and needs
to support more than one-to-one mapping of database tables.
The cookbook functionality is contained within a client-side application that must connect to the server using
HTTP and requires access to the data using JavaScript.
TheBookApiControllerclass must have a method that is able to perform ad-hoc queries using OData.
The RESTful API of the bookstore must expose the following endpoint.
Action: Get a list of all books
HTTP method: GET
Relative URI: /books
Action: Get a book by id
HTTP method: GET
Relative URI: /books/id
Action: Create a new book
HTTP method: POST
Relative URI: /books
Action: Update a book
HTTP method: PUT
Relative URI: /books/id
Action: Delete a book
HTTP method: DELETE
Relative URI: /books/id
Application Structure
Main
PurchaseOrders.xml
FeaturedBooks.xml
###EndCaseStudy###
DRAG DROP
You need to update the GetBook() method to retrieve book data by using ADO.NET.
You have the following code:
Which code segments should you include in Target 1, Target 2, Target 3, Target 4 and Target 5 to complete
this code? (To answer, drag the appropriate code segments to the correct location in the answer area. Each
segment 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.)
Select and Place:
Explanation:
Target 1: conn.Open();
Target 2: “SELECT id, name FROM books WHERE id =@id”;
Example of how to use named parameters in CommandType.Text.
SELECT * FROM dbo.Customers WHERE CustomerID =@CustomerID
Target 3:cmd.Parameters.AddWithValue(“@id”, id);
Examples of AddWithValue usage:
cmdSQL.Parameters.AddWithValue(“@CustomerID”, CustomerID)
cmdSQL.Parameters.AddWithValue(“@CartType”, cartType)
Target 4: Id=readerGetGuid(Reader.GetOrdinal(“id”)),
Target 5: reader.GetString(Reader.GetOrdinal(“name”))
Example of usage of GetOrdinal. Call GetOrdinal and assign value to variable.
int customerID = reader.GetOrdinal(“CustomerID”);https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.createcommand(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtext(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getordinal(v=vs.110).aspx
Target 1 and Target 3 should be swapped
No the real answer is correct.
I Agree
You have to open connection as late as possible.
Seems like so.