public IActionResult ImportVendor([FromBody] VendorECDto vendor, [FromQuery] string Key, [FromQuery] string Timestamp, [FromQuery] string Signature) { var sw = new Stopwatch(); sw.Start(); decimal elapsedTime = 0; _logger.LogInformation(LoggingEvents.INSERT_VENDOR, $"ImportVendor post parameters: {Key}, {Timestamp}, {Signature}"); //if (string.IsNullOrEmpty(Key) || string.IsNullOrEmpty(Timestamp) || string.IsNullOrEmpty(Signature)) //{ // return Unauthorized(); //} if (vendor == null) { _logger.LogInformation(LoggingEvents.INSERT_VENDOR_EXCEPTION, $"ImportVendor: Bad Request: Vendor object was not provided in body (null)"); return(BadRequest()); } if (ModelState.IsValid == false) { _logger.LogInformation(LoggingEvents.INSERT_VENDOR_EXCEPTION, $"ImportVendor: Invalid Request: Invalid vendor values were submitted"); return(BadRequest(ModelState)); } var response = new VendorResponseDto(); var eConnVendor = Mapper.Map <taUpdateCreateVendorRcd>(vendor); var vendorResponse = _importVendor.ImportGPVendor(eConnVendor); sw.Stop(); elapsedTime = Convert.ToDecimal(sw.ElapsedMilliseconds); vendorResponse.Elapsed = elapsedTime.ToString(); _logger.LogInformation(LoggingEvents.INSERT_VENDOR_COMPLETE, "ImportVendor complete: " + vendorResponse.Elapsed); //return Created(new Uri(_context.Request.Path, UriKind.Relative), vendorResponse); return(Ok(vendorResponse)); }
public VendorResponseDto ImportGPVendor(taUpdateCreateVendorRcd vendor) { var response = new VendorResponseDto(); //var sw = new Stopwatch(); //sw.Start(); //decimal elapsedTime = 0; try { string clearValue = "~~~"; string cdataValue = "<![CDATA[ ]]>"; //Replace null or empty string properties with the clear data value vendor = Fn.ReplaceNullOrEmptyStringProperties(vendor, clearValue); var PMVendor = new PMVendorMasterType(); PMVendor.taUpdateCreateVendorRcd = vendor; PMVendorMasterType[] PMVendorType = { PMVendor }; eConnectType eConnect = new eConnectType(); eConnect.PMVendorMasterType = PMVendorType; MemoryStream memStream = new MemoryStream(); XmlSerializer serializer = new XmlSerializer(eConnect.GetType()); serializer.Serialize(memStream, eConnect); memStream.Position = 0; XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(memStream); memStream.Close(); string finalXML = xmlDocument.OuterXml; //After serialization, replace clearValue with the eConnect CDATA value to clear field values that should now be empty finalXML = finalXML.Replace(clearValue, cdataValue); string responseMessage = string.Empty; string errorMessage = string.Empty; string vendorID = vendor.VENDORID; string vendorName = vendor.VENDNAME; bool success = eConn.CreateEntity(ref responseMessage, finalXML, _config.Value.GPCompanyDB); response.Success = success; response.ErrorCode = 0; if (success) { response.Message = "Vendor " + vendorID + " imported successfully"; } else { errorMessage = "Failed to import vendor " + vendorID + " - " + vendorName + ": " + responseMessage; response.Message = errorMessage; response.ErrorCode = LoggingEvents.INSERT_VENDOR_FAILED; } //sw.Stop(); //elapsedTime = Convert.ToDecimal(sw.ElapsedMilliseconds); //response.Elapsed = elapsedTime.ToString(); //_logger.LogInformation(LoggingEvents.INSERT_VENDOR_COMPLETE, $"ImportVendor {vendorID} complete: " + response.Elapsed); return(response); } catch (Exception ex) { //sw.Stop(); //elapsedTime = Convert.ToDecimal(sw.ElapsedMilliseconds); //response.Elapsed = elapsedTime.ToString(); response.Success = false; response.ErrorCode = LoggingEvents.INSERT_VENDOR_EXCEPTION; response.Message = "An unexpected error occured in ImportGPVendor: " + ex.Message; return(response); } }