public void AssetAcquisition( AssetAcquisitionRequest assetAcquisitionRequest, bool validateOnlyFlag , string asserttype ) { assetAcquisitionRequest.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 { message = "Non SSo Connection returned no connection"; Log.Error(message); assetAcquisitionRequest.ResponseMessage = new ResponseMessage( HttpStatusCode.InternalServerError, message); } if (continueProcessing) { new bapiCalls() .SapAssetAcquisition( sapConnect.r3Connection, assetAcquisitionRequest, validateOnlyFlag , asserttype ); } } catch (Exception exception) { Log.Error(exception, "Error Getting Non SSO Ticket: exception"); } }
// POST api/assetdisposal public HttpResponseMessage Post( [FromBody] AssetAcquisitionRequest assetAcquisitionRequest, bool?validateOnly = null, string asserttype = null) { var result = new HttpResponseMessage(HttpStatusCode.InternalServerError); try { if (assetAcquisitionRequest == null || assetAcquisitionRequest.AcquisitionRecords == null || assetAcquisitionRequest.AcquisitionRecords.Count == 0) { var message = "Asset acquisition web service call missing BODY parameters"; Log.Warning(message); assetAcquisitionRequest = new AssetAcquisitionRequest( null, new ResponseMessage( HttpStatusCode.BadRequest, message ) ); } else { Log.Information( "Call received - parameters: {params}", JsonConvert.SerializeObject(assetAcquisitionRequest)); SapAccess sapAccess = null; try { sapAccess = new SapAccess(); this.Request.RegisterForDispose(sapAccess); var validateOnlyFlag = validateOnly ?? false; sapAccess.AssetAcquisition( assetAcquisitionRequest, validateOnlyFlag, "host"); } finally { //sapAccess?.Dispose(); } } } catch (Exception exception) { assetAcquisitionRequest.ResponseMessage = new ResponseMessage(HttpStatusCode.InternalServerError, exception.Message); Log.Error(exception, "Error inside asset Acquisition"); } finally { } DateTime start = DateTime.Now; result.Content = new StringContent( JsonConvert.SerializeObject(assetAcquisitionRequest), System.Text.Encoding.UTF8, "application/json"); result.StatusCode = assetAcquisitionRequest.ResponseMessage.responseCode; // Log.Information("====================================================================="); Log.Information( "Response - parameters: {params}", JsonConvert.SerializeObject(assetAcquisitionRequest)); DateTime end = DateTime.Now; TimeSpan ts = (end - start); Log.Information("====================================================================="); Log.Information("Writing JSON to file time is {0} ms", ts.TotalMilliseconds); return(result); }