public HttpResponseMessage AddNewItem(AddItemRequest model) { if (!ModelState.IsValid) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } GroceryResponse <int> response = new GroceryResponse <int> { Grocery = justGroceryServices.AddNewItem(model) }; return(Request.CreateResponse(HttpStatusCode.OK, response)); }
// Implementation of the GetGroceries service method public override async Task GetGroceries(GroceryRequest request, IServerStreamWriter <GroceryResponse> responseStream, ServerCallContext context) { // Hard coded data List <string> groceries = new List <string> { "Potatoes", "Chicken", "Strawberries", "Milk", "Crackers", "Ice Cream", "Olives", "Lobster", "Orange Juice" }; // Return stream of reponse messages - one message for each item in the list foreach (var item in groceries) { GroceryResponse reply = new GroceryResponse { Grocery = item }; await responseStream.WriteAsync(reply); } }
// Calls the GetGroceries method of the service public async Task GetSomeGroceries() { // Create the request message GroceryRequest req = new GroceryRequest { Items = 4 }; // Receive the response stream (uses AsyncServerStreamingCall object) using (var call = client.GetGroceries(req)) { int count = 0; while (await call.ResponseStream.MoveNext()) { count++; GroceryResponse item = call.ResponseStream.Current; Console.WriteLine("Item " + count + ": " + item.Grocery + "\n"); } } }