public void AssetDisposal( AssetDisposalRequest assetDisposalRequest, bool validateOnlyFlag) { assetDisposalRequest.ResponseMessage = new ResponseMessage(HttpStatusCode.InternalServerError); string message; try { var continueProcessing = false; if (validateOnlyFlag == true) { sapConnect.MakeNonSsoConnection(); } else { sapConnect.MakeCookieConnection(true); } if (sapConnect.r3Connection != null && sapConnect.r3Connection.IsOpen == true) { continueProcessing = true; Log.Information("Connection established successfully."); } else { if (validateOnlyFlag == true) { message = "Non SSo Connection returned no connection"; } else { message = "SSo Connection returned no connection"; } Log.Error(message); assetDisposalRequest.ResponseMessage = new ResponseMessage( HttpStatusCode.InternalServerError, message); } if (continueProcessing) { new bapiCalls() .SapAssetDisposal( sapConnect.r3Connection, assetDisposalRequest, validateOnlyFlag); } } catch (Exception exception) { Log.Error(exception, "Error Getting Non SSO Ticket: exception"); } }
// POST api/assetdisposal public HttpResponseMessage Post( [FromBody] AssetDisposalRequest assetDisposalRequest, bool?validateOnly = null) { var result = new HttpResponseMessage(HttpStatusCode.InternalServerError); try { if (assetDisposalRequest == null || assetDisposalRequest.DisposalRecords == null || assetDisposalRequest.DisposalRecords.Count == 0) { var message = "Asset disposal web service call missing BODY parameters"; Log.Warning(message); assetDisposalRequest = new AssetDisposalRequest( null, new ResponseMessage( HttpStatusCode.BadRequest, message ) ); } else { Log.Information( "Call received - parameters: {params}", JsonConvert.SerializeObject(assetDisposalRequest)); SapAccess sapAccess = null; try { sapAccess = new SapAccess(); this.Request.RegisterForDispose(sapAccess); var validateOnlyFlag = validateOnly ?? false; sapAccess.AssetDisposal( assetDisposalRequest, validateOnlyFlag); } finally { //sapAccess?.Dispose(); } } } catch (Exception exception) { assetDisposalRequest.ResponseMessage = new ResponseMessage(HttpStatusCode.InternalServerError, exception.Message); Log.Error(exception, "Error inside assetdisposal"); } finally { } DateTime start = DateTime.Now; result.Content = new StringContent( JsonConvert.SerializeObject(assetDisposalRequest), System.Text.Encoding.UTF8, "application/json"); result.StatusCode = assetDisposalRequest.ResponseMessage.responseCode; // Log.Information("====================================================================="); Log.Information( "Response - parameters: {params}", JsonConvert.SerializeObject(assetDisposalRequest)); DateTime end = DateTime.Now; TimeSpan ts = (end - start); Log.Information("====================================================================="); Log.Information("Writing JSON to file time is {0} ms", ts.TotalMilliseconds); return(result); }