public int Create(ExampleEntityCreateRequest request) { int id = 0; /* * * // This is the plain-vanilla ADO.NET version of the dataProvider call below * * using (SqlConnection con = new SqlConnection("...")) * { * con.Open(); * * SqlCommand cmd = con.CreateCommand(); * cmd.CommandText = "example_entity__create"; // #1 * cmd.CommandType = CommandType.StoredProcedure; * * cmd.Parameters.AddWithValue("@stuff", request.Stuff); // #2 cmd.Parameters.AddWithValue("@thing", request.Thing); * SqlParameter idParam = cmd.Parameters.Add("@id", SqlDbType.Int); * idParam.Direction = ParameterDirection.Output; * * cmd.ExecuteNonQuery(); * * id = (int)cmd.Parameters["@id"].Value; // #3 * } * * return id; */ dataProvider.ExecuteNonQuery( "example_entity__create", // #1 inputParamMapper : delegate(SqlParameterCollection parameters) { /* * Here's the long version of: * parameters.AddWithValue("@stuff", request.Stuff); * * SqlParameter stuffParam; * stuffParam = new SqlParameter(); * stuffParam.ParameterName = "@stuff"; * stuffParam.Value = request.Stuff; * stuffParam.Direction = ParameterDirection.Input; * parameters.Add(stuffParam); */ parameters.AddWithValue("@stuff", request.Stuff); // #2 parameters.AddWithValue("@thing", request.Thing); SqlParameter idParam = parameters.Add("@id", SqlDbType.Int); idParam.Direction = ParameterDirection.Output; }, returnParameters : delegate(SqlParameterCollection parameters) { id = (int)parameters["@id"].Value; // #3 // do NOT do this: // int.TryParse(parameters["@id"].Value.ToString(), out id); }); return(id); }
public HttpResponseMessage Create(ExampleEntityCreateRequest req) { if (req == null) { ModelState.AddModelError("", "Missing body data."); } if (!ModelState.IsValid) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } // Declare a variable of type "ItemResponse of int" named itemResponse, // then, create a new ItemResponse of int and put it into that variable. ItemResponse <int> itemResponse = new ItemResponse <int>(); itemResponse.Item = exampleEntityService.Create(req); return(Request.CreateResponse(HttpStatusCode.Created, itemResponse)); }