public override Task <InsertResponse> PlaceOrder(PlaceOrderRequest request, ServerCallContext context) { string error = ""; int idVal = -1; try { ClientOrder validation = new ClientOrder { ClientEMail = request.ClientEMail, ClientName = request.ClientName, Quantity = request.PartsQty }; string validationResult = validation.IsValid(); if (validationResult == "") { var pList = new DB.ParamList { ["PartsId"] = request.PartsId, ["PartsQty"] = request.PartsQty, ["ClientName"] = request.ClientName, ["ClientEmail"] = request.ClientEMail }; idVal = DB.DBExecuter.execScalarSPAutoFillParams("sp_PlaceOrder", pList); // raise an exception in case } else { throw new Exception($"Validation error: {validationResult}"); } } catch (Exception e) { error = e.GetBaseException().Message; } return(Task.FromResult(new InsertResponse { Error = new basicResponse { ErrorResponse = error }, InsertedID = idVal })); }