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));
        }
Example #2
0
        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);
            }
        }