Ejemplo n.º 1
0
        public async Task <ActionResult> CancelOrderShipment([FromBody] SFOrderXMLRequest sFOrderXMLRequest)
        {
            //sFOrderXMLRequest.XMLMessage = "<Request service=\"OrderConfirmService\" lang=\"zh-CN\"><Head>LJ_T6NVV</Head><Body><OrderConfirm orderid=\"19066630505714563\" dealtype=\"2\"></OrderConfirm></Body></Request>";

            SFCancelOrderServiceRequest sFCancelOrderServiceRequest = new SFCancelOrderServiceRequest()
            {
                AccessNumber           = configuration["SFExpress:Access Number"],
                BaseURI                = configuration["SFExpress:Base URI"],
                Checkword              = configuration["SFExpress:Checkword"],
                RequestURI             = configuration["SFExpress:Cancel Order URI"],
                RequestOrderXMLMessage = sFOrderXMLRequest.XMLMessage,
            };

            GetSFCancelOrderServiceResponse getSFCancelOrderServiceResponse = QuincusService.SFExpressCancelOrder(sFCancelOrderServiceRequest);

            if (getSFCancelOrderServiceResponse.Response)
            {
                return(Ok(getSFCancelOrderServiceResponse.OrderResponse));
            }
            else
            {
                AuditEventEntry.WriteEntry(new Exception(getSFCancelOrderServiceResponse.exception.ToString()));
                return(Ok(getSFCancelOrderServiceResponse.exception));
            }
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> UpdateShipmentStatusById([FromBody] ShipmentDataRequest shipmentDataRequest)
        {
            shipmentService = new ShipmentService();
            ShipmentDataResponse shipmentDataResponse = shipmentService.UpdateShipmentStatusById(shipmentDataRequest);

            if (!shipmentDataResponse.Success)
            {
                AuditEventEntry.WriteEntry(new Exception(shipmentDataResponse.OperationExceptionMsg));
            }
            return(Ok(shipmentDataResponse));
        }
Ejemplo n.º 3
0
        public ShipmentDataResponse GetCompletedShipments(int wid)
        {
            ShipperCompnayService shipperCompanyService = new ShipperCompnayService();

            shipmentDataResponse = shipperCompanyService.SelectCompletedShipments(wid);
            if (!shipmentDataResponse.Success)
            {
                AuditEventEntry.WriteEntry(new Exception(shipmentDataResponse.OperationExceptionMsg));
            }
            return(shipmentDataResponse);
        }
Ejemplo n.º 4
0
        public IEnumerable <string> Get()
        {
            AuditEventEntry.WriteEntry(new Exception("This is test Message"));
            //SqlConnection connection = new SqlConnection(DBConnectionContext.connectionString);

            //connection.Open();

            //SqlDataAdapter sqlDataAdapter = new SqlDataAdapter("select * from [ADR-BK]", connection);

            //DataSet ds = new DataSet();

            //sqlDataAdapter.Fill(ds);

            return(new string[] { "value1", "value2" });
        }
Ejemplo n.º 5
0
        public ShipmentDataResponse GetMatchedShipmentsWithShipperCompanies(int wid)
        {
            ShipperCompnayService shipperCompanyService = new ShipperCompnayService();

            shipmentDataResponse = shipperCompanyService.SelectMatchedShipmentsWithShipperCompanies(wid);
            if (!shipmentDataResponse.Success)
            {
                AuditEventEntry.WriteEntry(new Exception(shipmentDataResponse.OperationExceptionMsg));
            }
            //else
            //{
            //    var json = JsonConvert.SerializeObject(shipmentDataResponse.Shipments).ToString();
            //    AuditEventEntry.WriteEntry(new Exception(json));
            //}
            return(shipmentDataResponse);
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> UpdateShipmentCode([FromBody] ShipmentGeoCodes shipmentGeoCodes)
        {
            QuincusResponse quincusResponse = null;

            QuincusTokenDataResponse quincusTokenDataResponse = QuincusService.GetToken(new UPS.Quincus.APP.Configuration.QuincusParams()
            {
                endpoint = configuration["Quincus:TokenEndPoint"],
                password = configuration["Quincus:Password"],
                username = configuration["Quincus:UserName"],
            });

            if (quincusTokenDataResponse.ResponseStatus)
            {
                quincusResponse = QuincusService.GetGeoCodeReponseFromQuincus(new UPS.Quincus.APP.Request.QuincusGeoCodeDataRequest()
                {
                    endpoint         = configuration["Quincus:GeoCodeEndPoint"],
                    id               = shipmentGeoCodes.geoCode,
                    quincusTokenData = quincusTokenDataResponse.quincusTokenData
                });

                if (quincusResponse.ResponseStatus)
                {
                    if (quincusResponse.QuincusReponseData != null)
                    {
                        IList <Geocode> geocodes = quincusResponse.QuincusReponseData.geocode;

                        string TranslatedCode = geocodes[0].translated_adddress;

                        return(Ok(quincusResponse.QuincusReponseData));
                    }
                }
            }
            else
            {
                AuditEventEntry.WriteEntry(new Exception(quincusTokenDataResponse.exception.ToString()));
                return(Ok(quincusTokenDataResponse.exception));
            }

            return(Ok("Error"));
        }
        public async Task <ActionResult> DeleteShipmentListById([FromBody] List <ShipperCompanyList> shipperCompanyRequests)
        {
            ShipperCompanyResponse shipperCompanyResponse = _shipperCompnayService.DeleteShipper(shipperCompanyRequests);

            try
            {
                if (shipperCompanyResponse.Success)
                {
                    // TO DO
                }
                else
                {
                    // Log the error here
                }
            }
            catch (Exception ex)
            {
                AuditEventEntry.WriteEntry(ex);
            }

            return(Ok(shipperCompanyResponse));
        }
        public IActionResult UpdateAddressBookById([FromBody] AddressBook addressBookData)
        {
            AddressBookResponse addressBookResponse = this.addressBookService.UpdateAddressBookById(addressBookData);

            if (addressBookResponse.Success && !string.IsNullOrEmpty(addressBookResponse.BeforeAddress))
            {
                try
                {
                    int userId = Convert.ToInt32(HttpContext.User.Claims.FirstOrDefault(x => x.Type == JwtConstant.UserId).Value);
                    //AddressAuditLog Update
                    AddressAuditLogRequest addressAuditLogRequest = new AddressAuditLogRequest();
                    addressAuditLogRequest.SMT_ID  = addressBookResponse.AddressBookData.ShipmentId;
                    addressAuditLogRequest.CSG_ADR = addressBookResponse.AddressBookData.ConsigneeAddress;
                    addressAuditLogRequest.BFR_ADR = addressBookResponse.BeforeAddress;
                    addressAuditLogRequest.AFR_ADR = addressBookData.ConsigneeTranslatedAddress;
                    addressAuditLogRequest.UPD_BY  = userId;
                    addressAuditLogRequest.UPD_FRM = "AddressBook";
                    addressAuditLogRequest.UPD_DT  = DateTime.Now;
                    addressAuditLogRequest.WFL_ID  = addressBookData.WFL_ID;
                    AddressAuditLogResponse addressAuditLogResponse = this.addressAuditLogService.Insert(addressAuditLogRequest);
                    if (addressAuditLogResponse.Success)
                    {
                        // TO DO
                    }
                    else
                    {
                        // Log the error here
                    }
                }
                catch (Exception ex)
                {
                    AuditEventEntry.WriteEntry(ex);
                }
            }
            return(Ok(addressBookResponse));
        }
        public static QuincusResponse GetQuincusResponse(QuincusGeoCodeDataRequest quincusGeoCodeDataRequest)
        {
            QuincusResponse quincusResponse = new QuincusResponse();
            HttpWebResponse httpResponse    = null;

            quincusResponse.QuincusReponseDataList = new List <QuincusReponseData>();
            try
            {
                List <string> webRequestURLS = new List <string>();

                quincusGeoCodeDataRequest.batchIDList.ForEach(requestID =>
                {
                    webRequestURLS.Add(quincusGeoCodeDataRequest.endpoint + requestID);
                });

                //Parallel.ForEach(webRequestURLS, urls =>
                // {
                //     var httpWebRequest = (HttpWebRequest)WebRequest.Create(urls);

                //     HttpRequestCachePolicy noCachePolicy =
                //         new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);

                //     httpWebRequest.CachePolicy = noCachePolicy;

                //     if (string.Equals(MapProxy.WebProxyEnable, true.ToString(), StringComparison.OrdinalIgnoreCase))
                //     {
                //         WebProxy myProxy = new WebProxy(MapProxy.webProxyURI, false, null, new NetworkCredential(MapProxy.webProxyUsername, MapProxy.webProxyPassword));
                //         httpWebRequest.Proxy = myProxy;
                //     }

                //     httpWebRequest.ContentType = "application/json";
                //     httpWebRequest.Headers.Add("AUTHORIZATION", "JWT " + quincusGeoCodeDataRequest.quincusTokenData.token);
                //     httpWebRequest.Method = "GET";
                //     httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                //     string response;

                //     using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                //     {
                //         response = streamReader.ReadToEnd();
                //         streamReader.Close();
                //     }

                //     if (!string.IsNullOrEmpty(response))
                //     {
                //         quincusResponse.QuincusReponseDataList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<QuincusReponseData>(response));
                //         quincusResponse.ResponseStatus = true;
                //     }

                //     httpResponse.Close();
                // });

                //var intermediateResponse = quincusResponse.QuincusReponseDataList;

                quincusGeoCodeDataRequest.batchIDList.ForEach(requestData =>
                {
                    System.Threading.Thread.Sleep(5000);
                    HttpRequestCachePolicy requestCachePolicy =
                        new HttpRequestCachePolicy(HttpRequestCacheLevel.Default);

                    HttpWebRequest.DefaultCachePolicy = requestCachePolicy;

                    var httpWebRequest = (HttpWebRequest)WebRequest.Create(
                        quincusGeoCodeDataRequest.endpoint + requestData + "/");

                    HttpRequestCachePolicy noCachePolicy =
                        new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);

                    httpWebRequest.CachePolicy = noCachePolicy;

                    if (string.Equals(MapProxy.WebProxyEnable, true.ToString(), StringComparison.OrdinalIgnoreCase))
                    {
                        WebProxy myProxy     = new WebProxy(MapProxy.webProxyURI, false, null, new NetworkCredential(MapProxy.webProxyUsername, MapProxy.webProxyPassword));
                        httpWebRequest.Proxy = myProxy;
                    }

                    httpWebRequest.ContentType = "application/json";
                    httpWebRequest.Headers.Add("AUTHORIZATION", "JWT " + quincusGeoCodeDataRequest.quincusTokenData.token);
                    httpWebRequest.Method  = "GET";
                    httpWebRequest.Timeout = 60000;
                    httpResponse           = (HttpWebResponse)httpWebRequest.GetResponse();

                    string response;

                    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                    {
                        response = streamReader.ReadToEnd();
                        streamReader.Close();
                    }

                    if (!string.IsNullOrEmpty(response))
                    {
                        quincusResponse.QuincusReponseDataList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject <QuincusReponseData>(response));
                        quincusResponse.ResponseStatus = true;
                    }

                    httpResponse.Close();
                    httpResponse.Dispose();
                    httpWebRequest.Abort();

                    Task.Run(() => AuditEventEntry.LogEntry(new DataObjects.LogData.LogDataModel()
                    {
                        dateTime = DateTime.Now,
                        apiTypes = DataObjects.LogData.APITypes.QuincusAPI_Batch,
                        apiType  = "QuincusAPI_Batch",

                        LogInformation = new DataObjects.LogData.LogInformation()
                        {
                            LogResponse  = response,
                            LogRequest   = JsonConvert.SerializeObject(quincusGeoCodeDataRequest.batchIDList),
                            LogException = null
                        }
                    }));
                });
            }
            catch (Exception exception)
            {
                quincusResponse.Exception = exception;
                Task.Run(() => AuditEventEntry.LogEntry(new DataObjects.LogData.LogDataModel()
                {
                    dateTime       = DateTime.Now,
                    apiTypes       = DataObjects.LogData.APITypes.QuincusAPI_Batch,
                    apiType        = "QuincusAPI_Batch",
                    LogInformation = new DataObjects.LogData.LogInformation()
                    {
                        LogResponse  = null,
                        LogRequest   = JsonConvert.SerializeObject(quincusGeoCodeDataRequest.batchIDList),
                        LogException = exception.InnerException.ToString()
                    }
                }));
            }

            return(quincusResponse);
        }
        public static QuincusTokenDataResponse GetToken(QuincusParams quincusParams)
        {
            QuincusTokenDataResponse quincusTokenDataResponse = new QuincusTokenDataResponse();
            var input = string.Empty;

            try
            {
                var httpWebRequest = (HttpWebRequest)WebRequest.Create(quincusParams.endpoint);
                if (string.Equals(MapProxy.WebProxyEnable, true.ToString(), StringComparison.OrdinalIgnoreCase))
                {
                    WebProxy myProxy = new WebProxy(MapProxy.webProxyURI, false, null, new NetworkCredential(MapProxy.webProxyUsername, MapProxy.webProxyPassword));
                    httpWebRequest.Proxy = myProxy;
                }
                httpWebRequest.ContentType = "application/json";
                httpWebRequest.Method      = "POST";
                using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    input = "{\"username\":\"" + quincusParams.username + "\"," +
                            "\"password\":\"" + quincusParams.password + "\"}";

                    streamWriter.Write(input);
                    streamWriter.Flush();
                    streamWriter.Close();
                }
                httpWebRequest.KeepAlive = false;
                var    httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                string response;

                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    response = streamReader.ReadToEnd();
                    streamReader.Close();
                }

                if (!string.IsNullOrWhiteSpace(response))
                {
                    quincusTokenDataResponse.quincusTokenData = JsonConvert.DeserializeObject <QuincusTokenData>(response);
                    quincusTokenDataResponse.ResponseStatus   = true;
                }

                httpResponse.Close();

                Task.Run(() => AuditEventEntry.LogEntry(new DataObjects.LogData.LogDataModel()
                {
                    dateTime       = DateTime.Now,
                    apiTypes       = DataObjects.LogData.APITypes.QuincusAPI_Token,
                    apiType        = "QuincusAPI_Token",
                    LogInformation = new DataObjects.LogData.LogInformation()
                    {
                        LogResponse  = response,
                        LogRequest   = string.Format("Senstive Information Identified {0}", System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(input))),
                        LogException = null
                    }
                }));
            }
            catch (Exception exception)
            {
                quincusTokenDataResponse.exception = exception;
                Task.Run(() => AuditEventEntry.LogEntry(new DataObjects.LogData.LogDataModel()
                {
                    dateTime       = DateTime.Now,
                    apiTypes       = DataObjects.LogData.APITypes.QuincusAPI_Token,
                    apiType        = "QuincusAPI_Token",
                    LogInformation = new DataObjects.LogData.LogInformation()
                    {
                        LogResponse  = null,
                        LogRequest   = string.Format("Senstive Information Identified {0}", System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(input))),
                        LogException = exception.InnerException.ToString()
                    }
                }));
            }

            return(quincusTokenDataResponse);
        }
        public static QuincusTranslatedAddressResponse GetTranslatedAddressResponse(IQuincusAddressTranslationRequest quincusAddressTranslationRequest, QuincusParams quincusParams)
        {
            string response = string.Empty;
            var    input    = string.Empty;
            QuincusTranslatedAddressResponse quincusTranslatedAddressResponse = new QuincusTranslatedAddressResponse();

            quincusTranslatedAddressResponse.ResponseData = new List <GetBatchResponseForAddressTranslation>();

            try
            {
                quincusTranslatedAddressResponse.RequestDataCount = quincusAddressTranslationRequest.shipmentWorkFlowRequests.Count;

                List <string> content = GetRequestContextForAddress.GetAddressStringFromRequest(quincusAddressTranslationRequest.shipmentWorkFlowRequests, quincusParams);
                quincusTranslatedAddressResponse.QuincusContentRequest = JsonConvert.SerializeObject(content);

                content.ForEach(requestdata =>
                {
                    var httpWebRequest = (HttpWebRequest)WebRequest.Create(
                        quincusAddressTranslationRequest.endpoint);
                    if (string.Equals(MapProxy.WebProxyEnable, true.ToString(), StringComparison.OrdinalIgnoreCase))
                    {
                        WebProxy myProxy = new WebProxy(MapProxy.webProxyURI, false, null, new NetworkCredential(MapProxy.webProxyUsername, MapProxy.webProxyPassword));

                        httpWebRequest.Proxy = myProxy;
                    }

                    httpWebRequest.ContentType = "application/json";
                    httpWebRequest.Headers.Add("AUTHORIZATION", "JWT " + quincusAddressTranslationRequest.token);
                    httpWebRequest.Method = "POST";

                    using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                    {
                        input = requestdata;

                        streamWriter.Write(input);
                        streamWriter.Flush();
                        streamWriter.Close();
                    }

                    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                    {
                        response = streamReader.ReadToEnd();

                        streamReader.Close();
                    }

                    httpResponse.Close();

                    quincusTranslatedAddressResponse.ResponseData.Add(JsonConvert.DeserializeObject <GetBatchResponseForAddressTranslation>(response));
                    quincusTranslatedAddressResponse.Response = true;
                    quincusTranslatedAddressResponse.ResponseData.ForEach(record =>
                    {
                        record.addresses.ForEach(address =>
                        {
                            address.rcV_CPY_TE =
                                Convert.ToString(
                                    quincusAddressTranslationRequest.shipmentWorkFlowRequests
                                    .FirstOrDefault(_ =>
                                                    Convert.ToString(_.pkG_NR_TE) == address.id)
                                    .rcV_CPY_TE);
                        });
                    });


                    Task.Run(() => AuditEventEntry.LogEntry(new DataObjects.LogData.LogDataModel()
                    {
                        dateTime       = DateTime.Now,
                        apiTypes       = DataObjects.LogData.APITypes.QuincusAPI_Translation,
                        apiType        = Enum.GetName(typeof(UPS.DataObjects.LogData.APITypes), 4),
                        LogInformation = new DataObjects.LogData.LogInformation()
                        {
                            LogResponse  = response,
                            LogRequest   = JsonConvert.SerializeObject(quincusAddressTranslationRequest.shipmentWorkFlowRequests),
                            LogException = null
                        }
                    }));
                });
            }
            catch (Exception exception)
            {
                quincusTranslatedAddressResponse.exception = exception;
                Task.Run(() => AuditEventEntry.LogEntry(new DataObjects.LogData.LogDataModel()
                {
                    dateTime       = DateTime.Now,
                    apiTypes       = DataObjects.LogData.APITypes.QuincusAPI_Translation,
                    apiType        = Enum.GetName(typeof(UPS.DataObjects.LogData.APITypes), 4),
                    LogInformation = new DataObjects.LogData.LogInformation()
                    {
                        LogResponse  = null,
                        LogRequest   = JsonConvert.SerializeObject(quincusAddressTranslationRequest.shipmentWorkFlowRequests),
                        LogException = exception.InnerException.ToString()
                    }
                }));
            }

            return(quincusTranslatedAddressResponse);
        }
        public async Task <ActionResult> ExcelFile(IList <IFormFile> excelFileName)
        {
            string[] validationSet     = configuration.GetSection("ExcelFileValidation:mandatoryFields").GetChildren().Select(val => val.Value).ToArray();
            string[] cellValidationSet = configuration.GetSection("ExcelFileValidation:cellValidationFields").GetChildren().Select(val => val.Value).ToArray();
            string   addressBookEnable = configuration["AddressBook:Enable"];

            ShipmentDataResponse shipmentDataResponse = new ShipmentDataResponse();

            try
            {
                int userId = Convert.ToInt32(HttpContext.User.Claims.FirstOrDefault(x => x.Type == JwtConstant.UserId).Value);
                ShipmentDataResponse result = null;
                //string response = string.Empty;
                if (excelFileName != null)
                {
                    //var uploads = Path.Combine(_hostingEnvironment.WebRootPath, "uploads");
                    foreach (var file in excelFileName)
                    {
                        if (file.Length > 0)
                        {
                            //string paths = hostingEnvironment.WebRootPath;

                            var filePath = Path.Combine(_hostingEnvironment.WebRootPath, file.FileName);

                            //var filePath = Path.Combine(@"D:\UserExcels", file.FileName);
                            using (var fileStream = new FileStream(filePath, FileMode.Create))
                            {
                                //FileStream stream = File.Open(fileName, FileMode.Open, FileAccess.Read);
                                //response = new ExcelExtension().Test(filePath);
                                await file.CopyToAsync(fileStream);
                            }


                            ExcelExtensionReponse excelExtensionReponse =
                                new ExcelExtension()
                                .Test(
                                    filePath,
                                    configuration.GetSection("ExcelFileValidation:mandatoryFields").GetChildren().Select(val => val.Value).ToArray(),
                                    configuration.GetSection("ColumnValidation:regexList").GetChildren().Select(val => val.Value).ToArray(),
                                    configuration.GetSection("ColumnValidation:columnLengths").GetChildren().Select(val => val.Value).ToArray());
                            if (excelExtensionReponse.success)
                            {
                                var excelDataObject2 = JsonConvert.DeserializeObject <List <ExcelDataObject> >(excelExtensionReponse.ExcelExtensionReponseData);
                                WorkflowController   workflowController = new WorkflowController(this._hostingEnvironment, this._context, this._addressBookService, this._entityValidationService);
                                WorkflowDataResponse response           = ((WorkflowDataResponse)((ObjectResult)(workflowController.CreateWorkflow(file, userId)).Result).Value);
                                _workflowID = response.Workflow.ID;
                                result      = _shipmentService.CreateShipments(excelDataObject2, _workflowID, addressBookEnable, out int?workflowStatus);
                                if (result.Success)
                                {
                                    shipmentDataResponse.Success   = true;
                                    shipmentDataResponse.Shipments = result.Shipments;
                                    WorkflowDataRequest workflowDataRequest = new WorkflowDataRequest();
                                    workflowDataRequest.ID         = _workflowID;
                                    workflowDataRequest.WFL_STA_TE = workflowStatus;
                                    _workflowService.UpdateWorkflowStatusById(workflowDataRequest);
                                }
                                else
                                {
                                    shipmentDataResponse.Success = false;
                                    shipmentDataResponse.OperationExceptionMsg = result.OperationExceptionMsg;
                                    WorkflowService workflowService = new WorkflowService(_context, _addressBookService, _entityValidationService);
                                    workflowService.DeleteWorkflowById(_workflowID);
                                }
                            }
                            else
                            {
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                                Task.Run(() => iCustomLog.AddLogEntry(new UPS.DataObjects.LogData.LogDataModel()
                                {
                                    apiType        = Enum.GetName(typeof(UPS.DataObjects.LogData.APITypes), 7),
                                    dateTime       = System.DateTime.Now,
                                    LogInformation = new UPS.DataObjects.LogData.LogInformation()
                                    {
                                        LogException = string.Empty,
                                        LogRequest   = "Excel Uploaded",
                                        LogResponse  = JsonConvert.SerializeObject(excelExtensionReponse)
                                    }
                                }));
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                                return(Ok(excelExtensionReponse));
                            }
                        }
                    }
                }

#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                Task.Run(() => iCustomLog.AddLogEntry(new UPS.DataObjects.LogData.LogDataModel()
                {
                    apiTypes       = UPS.DataObjects.LogData.APITypes.ExcelUpload,
                    apiType        = Enum.GetName(typeof(UPS.DataObjects.LogData.APITypes), 7),
                    dateTime       = System.DateTime.Now,
                    LogInformation = new UPS.DataObjects.LogData.LogInformation()
                    {
                        LogException = null,
                        LogRequest   = "Excel Uploaded",
                        LogResponse  = JsonConvert.SerializeObject(shipmentDataResponse)
                    }
                }));
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed

                return(Ok(shipmentDataResponse));
            }
            catch (Exception ex)
            {
                // new AuditEventEntry.WriteEntry(new Exception(ex.Message));
                AuditEventEntry.WriteEntry(ex);
                return(Ok(shipmentDataResponse.OperationExceptionMsg = ex.Message));
            }
        }
        public async Task <ActionResult> GetTranslationAddress([FromBody] List <ShipmentDataRequest> _shipmentDataRequest)
        {
            int wid = 0;

            if (_shipmentDataRequest.Any())
            {
                wid = _shipmentDataRequest.FirstOrDefault().WFL_ID;
            }
            QuincusTranslatedAddressResponse quincusTranslatedAddressResponse = new QuincusTranslatedAddressResponse();
            QuincusParams quincusParams = new UPS.Quincus.APP.Configuration.QuincusParams()
            {
                endpoint  = configuration["Quincus:TokenEndPoint"],
                password  = configuration["Quincus:Password"],
                username  = configuration["Quincus:UserName"],
                chunkSize = int.TryParse(configuration["Quincus:BatchSize"], out int size) == true ? size : 10,
            };

            QuincusTokenDataResponse quincusTokenDataResponse = QuincusService.GetToken(quincusParams);

            if (quincusTokenDataResponse.ResponseStatus)
            {
                List <ShipmentWorkFlowRequest> shipmentWorkFlowRequests =
                    _shipmentDataRequest.Select(_ =>
                                                new ShipmentWorkFlowRequest()
                {
                    id         = _.ID,
                    rcV_ADR_TE = _.RCV_ADR_TE,
                    dsT_CTY_TE = _.DST_CTY_TE,
                    wfL_ID     = _.WFL_ID,
                    pkG_NR_TE  = _.PKG_NR_TE,
                    rcV_CPY_TE = _.RCV_CPY_TE,
                    dsT_PSL_TE = _.DST_PSL_TE
                }).ToList();

                this._quincusAddressTranslationRequest.shipmentWorkFlowRequests = shipmentWorkFlowRequests;
                this._quincusAddressTranslationRequest.token = quincusTokenDataResponse.quincusTokenData.token;

                quincusTranslatedAddressResponse = QuincusService.GetTranslationAddress(this._quincusAddressTranslationRequest, quincusParams);

                if (quincusTranslatedAddressResponse.Response)
                {
                    var getAddressTranslation = quincusTranslatedAddressResponse.ResponseData;

                    List <string> batchIds = new List <string>();

                    Dictionary <string, string> shipmentDetailsDictionary = new Dictionary <string, string>();
                    quincusTranslatedAddressResponse.ResponseData.ForEach(batches =>
                    {
                        batchIds.Add(batches.batch_id);

                        batches.addresses.ForEach(address =>
                        {
                            shipmentDetailsDictionary.Add(address.id, address.rcV_CPY_TE);
                        });
                    });

                    var QuincusResponse = QuincusService.GetGeoCodeReponseFromQuincus(new UPS.Quincus.APP.Request.QuincusGeoCodeDataRequest()
                    {
                        endpoint                  = configuration["Quincus:GeoCodeEndPoint"],
                        batchIDList               = batchIds,
                        quincusTokenData          = quincusTokenDataResponse.quincusTokenData,
                        ShipmentDetailsDictionary = shipmentDetailsDictionary
                    });

                    if (QuincusResponse.ResponseStatus)
                    {
                        // Insert Address into AddressBook
                        _addressBookService.InsertAddress(QuincusResponse.QuincusReponseDataList, shipmentDetailsDictionary);

                        try
                        {
                            var requestIds = _shipmentDataRequest.Select(_ => _.ID).ToList();
                            List <ShipmentDataRequest> existingShipmentDetails =
                                this._context.shipmentDataRequests
                                .Where(ShpDetail =>
                                       ShpDetail.WFL_ID == wid
                                       &&
                                       (ShpDetail.SMT_STA_NR == ((int)Enums.ATStatus.Uploaded)) &&
                                       (!requestIds.Contains(ShpDetail.ID))
                                       )
                                .ToList();


                            QuincusResponse.QuincusReponseDataList.ForEach(datalist =>
                            {
                                List <Geocode> geocodes = (List <Geocode>)((QuincusReponseData)datalist).geocode;
                                List <ShipmentDataRequest> shipmentDataRequestList = new List <ShipmentDataRequest>(geocodes.Count);

                                foreach (Geocode geocode in geocodes)
                                {
                                    ShipmentDataRequest currentShipmentDataRequest =
                                        _shipmentDataRequest.FirstOrDefault(_ => _.PKG_NR_TE == geocode.id);
                                    ShipmentDataRequest shipmentDataRequest = CreateShipmentAddressUpdateRequest(currentShipmentDataRequest, geocode);

                                    shipmentDataRequestList.Add(shipmentDataRequest);

                                    // Checking any same address are avaible, If there then updating those address also

                                    List <ShipmentDataRequest> sameAddressShpRequest =
                                        existingShipmentDetails.Where(
                                            (ShipmentDataRequest data) =>
                                            data.RCV_ADR_TE.ToLower().Replace(" ", "")
                                            .Equals(currentShipmentDataRequest.RCV_ADR_TE.ToLower().Replace(" ", ""))
                                            )
                                        .ToList();
                                    if (sameAddressShpRequest.Any())
                                    {
                                        sameAddressShpRequest.ForEach(shpDetails =>
                                        {
                                            var sameaddressRequest = CreateShipmentAddressUpdateRequest(shpDetails, geocode);
                                            shipmentDataRequestList.Add(sameaddressRequest);
                                        });
                                    }
                                }

                                shipmentDataRequestList = shipmentDataRequestList.GroupBy(x => x.ID).Select(x => x.First()).ToList();
                                _shipmentService.UpdateShipmentAddressByIds(shipmentDataRequestList);

                                //we need to update the workflow status
                                int?workflowstatus = _shipmentService.SelectShipmentTotalStatusByWorkflowId(wid);
                                WorkflowDataRequest workflowDataRequest = new WorkflowDataRequest();
                                workflowDataRequest.ID         = wid;
                                workflowDataRequest.WFL_STA_TE = workflowstatus;
                                _workflowService.UpdateWorkflowStatusById(workflowDataRequest);
                            });
                        }
                        catch (Exception exception)
                        {
                            AuditEventEntry.WriteEntry(exception);
                        }



#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                        Task.Run(() => iCustomLog.AddLogEntry(new UPS.DataObjects.LogData.LogDataModel()
                        {
                            apiTypes       = UPS.DataObjects.LogData.APITypes.QuincusAPI_Translation,
                            apiType        = Enum.GetName(typeof(UPS.DataObjects.LogData.APITypes), 4),
                            dateTime       = System.DateTime.Now,
                            LogInformation = new UPS.DataObjects.LogData.LogInformation()
                            {
                                LogException = null,
                                LogRequest   = quincusTranslatedAddressResponse.QuincusContentRequest,
                                LogResponse  = JsonConvert.SerializeObject(QuincusResponse.QuincusReponseDataList)
                            }
                        }));
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed

                        return(Ok(QuincusResponse.QuincusReponseDataList));
                    }
                    else
                    {
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                        Task.Run(() => iCustomLog.AddLogEntry(new UPS.DataObjects.LogData.LogDataModel()
                        {
                            apiTypes       = UPS.DataObjects.LogData.APITypes.QuincusAPI_Translation,
                            apiType        = Enum.GetName(typeof(UPS.DataObjects.LogData.APITypes), 4),
                            dateTime       = System.DateTime.Now,
                            LogInformation = new UPS.DataObjects.LogData.LogInformation()
                            {
                                LogException = QuincusResponse.Exception.InnerException.ToString(),
                                LogRequest   = quincusTranslatedAddressResponse.QuincusContentRequest,
                                LogResponse  = null
                            }
                        }));
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                        return(Ok(QuincusResponse.Exception));
                    }
                }
                else
                {
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                    Task.Run(() => iCustomLog.AddLogEntry(new UPS.DataObjects.LogData.LogDataModel()
                    {
                        apiTypes       = UPS.DataObjects.LogData.APITypes.QuincusAPI_Translation,
                        apiType        = Enum.GetName(typeof(UPS.DataObjects.LogData.APITypes), 4),
                        dateTime       = System.DateTime.Now,
                        LogInformation = new UPS.DataObjects.LogData.LogInformation()
                        {
                            LogException = quincusTranslatedAddressResponse.exception.InnerException.ToString(),
                            LogRequest   = JsonConvert.SerializeObject(_shipmentDataRequest),
                            LogResponse  = null
                        }
                    }));
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                    return(Ok(quincusTranslatedAddressResponse.exception));
                }
            }
            else
            {
                return(Ok(quincusTokenDataResponse.exception));
            }
        }
Ejemplo n.º 14
0
        public async Task <ActionResult> GetTranslationAddress([FromBody] List <ShipmentWorkFlowRequest> shipmentWorkFlowRequest)
        {
            int     wid          = 0;
            decimal requestCount = 0m;

            if (shipmentWorkFlowRequest.Any())
            {
                wid = shipmentWorkFlowRequest.FirstOrDefault().wfL_ID;
            }
            QuincusTranslatedAddressResponse quincusTranslatedAddressResponse = new QuincusTranslatedAddressResponse();

            QuincusTokenDataResponse quincusTokenDataResponse = QuincusService.GetToken(new UPS.Quincus.APP.Configuration.QuincusParams()
            {
                endpoint = configuration["Quincus:TokenEndPoint"],
                password = configuration["Quincus:Password"],
                username = configuration["Quincus:UserName"],
            });

            if (quincusTokenDataResponse.ResponseStatus)
            {
                //quincusTranslatedAddressResponse = QuincusService.GetTranslationAddress(new UPS.Quincus.APP.Request.QuincusAddressTranslationRequest()
                //{
                //    endpoint = configuration["Quincus:GeoCodeEndPoint"],
                //    shipmentWorkFlowRequests = shipmentWorkFlowRequest,
                //    token = quincusTokenDataResponse.quincusTokenData.token
                //});
                this._quincusAddressTranslationRequest.shipmentWorkFlowRequests = shipmentWorkFlowRequest;
                this._quincusAddressTranslationRequest.token = quincusTokenDataResponse.quincusTokenData.token;

                List <List <ShipmentWorkFlowRequest> > shipmentWorkFlowRequests = new List <List <ShipmentWorkFlowRequest> >();
                shipmentWorkFlowRequests = QuincusProxy.ChunkBy(shipmentWorkFlowRequest, 20);

                foreach (List <ShipmentWorkFlowRequest> requests in shipmentWorkFlowRequests)
                {
                    requestCount = requests.Count();

                    quincusTranslatedAddressResponse = QuincusService.GetTranslationAddress(this._quincusAddressTranslationRequest);

                    if (quincusTranslatedAddressResponse.Response)
                    {
                        //return Ok(quincusTranslatedAddressResponse.ResponseData);

                        var getAddressTranslation = quincusTranslatedAddressResponse.ResponseData;

                        var QuincusResponse = QuincusService.GetGeoCodeReponseFromQuincus(new UPS.Quincus.APP.Request.QuincusGeoCodeDataRequest()
                        {
                            endpoint         = configuration["Quincus:GeoCodeEndPoint"],
                            id               = quincusTranslatedAddressResponse.ResponseData.batch_id,
                            quincusTokenData = quincusTokenDataResponse.quincusTokenData
                        }, requestCount);

                        if (QuincusResponse.ResponseStatus)
                        {
                            ShipmentDataRequest        shipment             = new ShipmentDataRequest();
                            List <Geocode>             geocodes             = (List <Geocode>)((QuincusReponseData)QuincusResponse.QuincusReponseData).geocode;
                            List <ShipmentDataRequest> shipmentsDataRequest = new List <ShipmentDataRequest>(geocodes.Count);
                            for (int i = 0; i < geocodes.Count; i++)
                            {
                                ShipmentDataRequest shipmentDataRequest = new ShipmentDataRequest();
                                shipmentDataRequest.ID            = Convert.ToInt32(geocodes[i].id);
                                shipmentDataRequest.WFL_ID        = wid;
                                shipmentDataRequest.SHP_ADR_TR_TE = geocodes[i].translated_adddress;
                                shipmentDataRequest.ACY_TE        = geocodes[i].accuracy;
                                shipmentDataRequest.CON_NR        = geocodes[i].confidence;

                                if (
                                    !string.IsNullOrEmpty(geocodes[i].translated_adddress)
                                    //&&  geocodes[i].translated_adddress != "NA"
                                    //&& !string.Equals(shipmentWorkFlowRequest.Where(s => s.id == shipmentDataRequest.ID).FirstOrDefault().rcV_ADR_TE.Trim(),
                                    //    geocodes[i].translated_adddress.Trim())
                                    )
                                {
                                    shipmentDataRequest.SMT_STA_NR = ((int)Enums.ATStatus.Translated);
                                    shipmentDataRequest.SMT_STA_TE = "Translated";
                                }
                                else
                                {
                                    shipmentDataRequest.SMT_STA_NR = Convert.ToInt32(shipmentWorkFlowRequest.Where(s => s.id == shipmentDataRequest.ID).FirstOrDefault().smT_STA_NR);
                                    shipmentDataRequest.SMT_STA_TE = Convert.ToString(shipmentWorkFlowRequest.Where(s => s.id == shipmentDataRequest.ID).FirstOrDefault().smT_STA_TE);
                                }
                                shipmentsDataRequest.Add(shipmentDataRequest);
                            }
                            ShipmentService shipmentService = new ShipmentService();
                            shipmentService.UpdateShipmentAddressByIds(shipmentsDataRequest);
                            _workflowID = shipmentsDataRequest.FirstOrDefault().WFL_ID;
                            //we need to update the workflow status
                            int?workflowstatus = shipmentService.SelectShipmentTotalStatusByWorkflowId(_workflowID);
                            WorkflowDataRequest workflowDataRequest = new WorkflowDataRequest();
                            workflowDataRequest.ID         = _workflowID;
                            workflowDataRequest.WFL_STA_TE = workflowstatus;
                            workflowService.UpdateWorkflowStatusById(workflowDataRequest);
                        }
                        else
                        {
                            if (QuincusResponse.Exception == null)
                            {
                                AuditEventEntry.WriteEntry(new Exception("Translation failed..."));
                            }
                            else
                            {
                                AuditEventEntry.WriteEntry(new Exception(QuincusResponse.Exception.ToString()));
                            }
                            return(Ok(QuincusResponse?.Exception));
                        }
                    }
                    else
                    {
                        if (quincusTranslatedAddressResponse.exception == null)
                        {
                            AuditEventEntry.WriteEntry(new Exception("Translation failed..."));
                        }
                        else
                        {
                            AuditEventEntry.WriteEntry(new Exception(quincusTranslatedAddressResponse.exception.ToString()));
                        }
                        return(Ok(quincusTranslatedAddressResponse?.exception));
                    }
                }

                return(Ok(quincusTranslatedAddressResponse.ResponseData));
            }
            else
            {
                if (quincusTokenDataResponse.exception == null)
                {
                    AuditEventEntry.WriteEntry(new Exception("Translation failed..."));
                }
                else
                {
                    AuditEventEntry.WriteEntry(new Exception(quincusTokenDataResponse.exception.ToString()));
                }
                return(Ok(quincusTokenDataResponse?.exception));
            }
        }
Ejemplo n.º 15
0
        public async Task <ActionResult> CreateOrderShipment([FromBody] List <UIOrderRequestBodyData> uIOrderRequestBodyDatas)
        {
            _workflowID = uIOrderRequestBodyDatas[0].wfL_ID;
            CreateOrderShipmentResponse createOrderShipmentResponse = new CreateOrderShipmentResponse();

            createOrderShipmentResponse.FailedToProcessShipments = new List <string>();
            createOrderShipmentResponse.ProcessedShipments       = new List <string>();
            ShipmentService shipmentService = new ShipmentService();

            //List<UIOrderRequestBodyData> uIOrderRequestBodyDatas = new List<UIOrderRequestBodyData>();

            foreach (var orderRequest in uIOrderRequestBodyDatas)
            {
                string XMLMessage = string.Empty;

                XMLMessage  = "<Request lang=\"zh-CN\" service=\"OrderService\">";
                XMLMessage += "<Head>LJ_T6NVV</Head>";
                XMLMessage += "<Body>";
                XMLMessage += "<Order orderid=\"" + orderRequest.pkG_NR_TE + "\" custid=\"" + 7551234567 + "\"";
                XMLMessage += " j_tel=\"" + orderRequest.shP_CTC_TE + "\"";
                XMLMessage += " j_address=\"" + orderRequest.shP_ADR_TE + "\"";
                XMLMessage += " d_tel=\"" + orderRequest.pH_NR + "\"";
                XMLMessage += " d_address=\"" + orderRequest.shP_ADR_TR_TE + "\" cargo_total_weight=\"" + orderRequest.pkG_WGT_DE + "\"";
                XMLMessage += " pay_method=\"1\" is_docall=\"" + 1 + "\" need_return_tracking_no=\"" + orderRequest.poD_RTN_SVC + "\" express_type=\"6\"";
                XMLMessage += " >";
                XMLMessage += " </Order></Body></Request>";


                SFCreateOrderServiceRequest sFCreateOrderServiceRequest = new SFCreateOrderServiceRequest()
                {
                    AccessNumber           = configuration["SFExpress:Access Number"],
                    BaseURI                = configuration["SFExpress:Base URI"],
                    Checkword              = configuration["SFExpress:Checkword"],
                    RequestURI             = configuration["SFExpress:Place Order URI"],
                    RequestOrderXMLMessage = XMLMessage,
                };

                GetSFCreateOrderServiceResponse getSFCreateOrderServiceResponse = QuincusService.SFExpressCreateOrder(sFCreateOrderServiceRequest);

                //shipmentDataResponse = shipmentService.UpdateShipmentStatusById(shipmentDataRequest);
                //if (!shipmentDataResponse.Success)
                //{
                //    AuditEventEntry.WriteEntry(new Exception(shipmentDataResponse.OperationExceptionMsg));
                //}

                if (getSFCreateOrderServiceResponse.Response)
                {
                    XmlDocument xmlDocumentShipmentResponse = new XmlDocument();
                    xmlDocumentShipmentResponse.LoadXml(getSFCreateOrderServiceResponse.OrderResponse);

                    string xmlDocumentShipmentResponseParser = xmlDocumentShipmentResponse.InnerXml;

                    if (xmlDocumentShipmentResponseParser.Contains("<ERROR"))
                    {
                        if (xmlDocumentShipmentResponseParser.Contains("8019"))
                        {
                            createOrderShipmentResponse.FailedToProcessShipments.Add("Customer order number(" + orderRequest.pkG_NR_TE + ") is already confirmed");
                        }
                        else if (xmlDocumentShipmentResponseParser.Contains("8016"))
                        {
                            createOrderShipmentResponse.FailedToProcessShipments.Add("Repeat order numbers ( " + orderRequest.pkG_NR_TE + " )");
                        }
                        else
                        {
                            createOrderShipmentResponse.FailedToProcessShipments.Add(orderRequest.pkG_NR_TE);
                        }
                    }
                    else
                    {
                        createOrderShipmentResponse.ProcessedShipments.Add(orderRequest.pkG_NR_TE);

                        ShipmentDataRequest shipmentDataRequest = new ShipmentDataRequest();
                        shipmentDataRequest.ID         = orderRequest.id;
                        shipmentDataRequest.WFL_ID     = orderRequest.wfL_ID;
                        shipmentDataRequest.SMT_STA_NR = ((int)Enums.ATStatus.Completed);
                        shipmentDataRequest.SMT_STA_TE = "Completed";
                        _workflowID = orderRequest.wfL_ID;

                        shipmentService.UpdateShipmentStatusById(shipmentDataRequest);
                    }

                    createOrderShipmentResponse.Response = true;
                }
                else
                {
                    createOrderShipmentResponse.Response = false;
                    if (getSFCreateOrderServiceResponse.exception != null)
                    {
                        AuditEventEntry.WriteEntry(new Exception(getSFCreateOrderServiceResponse.exception.ToString()));
                    }
                }
            }
            //we need to update the workflow status
            int?                workflowstatus      = shipmentService.SelectShipmentTotalStatusByWorkflowId(_workflowID);
            WorkflowService     workflowService     = new WorkflowService();
            WorkflowDataRequest workflowDataRequest = new WorkflowDataRequest();

            workflowDataRequest.ID         = _workflowID;
            workflowDataRequest.WFL_STA_TE = workflowstatus;
            workflowService.UpdateWorkflowStatusById(workflowDataRequest);
            return(Ok(createOrderShipmentResponse));
        }
Ejemplo n.º 16
0
        public async Task <ActionResult> ExcelFile(IList <IFormFile> excelFileName, int Emp_Id)
        {
            ShipmentDataResponse shipmentDataResponse = new ShipmentDataResponse();

            try
            {
                ShipmentDataResponse result = null;
                //string response = string.Empty;
                if (excelFileName != null)
                {
                    //var uploads = Path.Combine(_hostingEnvironment.WebRootPath, "uploads");
                    foreach (var file in excelFileName)
                    {
                        if (file.Length > 0)
                        {
                            //string paths = hostingEnvironment.WebRootPath;

                            var filePath = Path.Combine(hostingEnvironment.WebRootPath, file.FileName);

                            //var filePath = Path.Combine(@"D:\UserExcels", file.FileName);
                            using (var fileStream = new FileStream(filePath, FileMode.Create))
                            {
                                //FileStream stream = File.Open(fileName, FileMode.Open, FileAccess.Read);
                                //response = new ExcelExtension().Test(filePath);
                                await file.CopyToAsync(fileStream);
                            }


                            ExcelExtensionReponse excelExtensionReponse = new ExcelExtension().Test(filePath);
                            if (excelExtensionReponse.success)
                            {
                                var excelDataObject2 = JsonConvert.DeserializeObject <List <ExcelDataObject> >(excelExtensionReponse.ExcelExtensionReponseData);
                                WorkflowController   workflowController = new WorkflowController();
                                WorkflowDataResponse response           = ((WorkflowDataResponse)((ObjectResult)(workflowController.CreateWorkflow(file, Emp_Id)).Result).Value);
                                _workflowID = response.Workflow.ID;
                                result      = this.CreateShipments(excelDataObject2, _workflowID);
                                if (result.Success)
                                {
                                    shipmentDataResponse.Success   = true;
                                    shipmentDataResponse.Shipments = result.Shipments;
                                }
                                else
                                {
                                    shipmentDataResponse.Success = false;
                                    shipmentDataResponse.OperationExceptionMsg = result.OperationExceptionMsg;
                                    WorkflowService workflowService = new WorkflowService();
                                    workflowService.DeleteWorkflowById(_workflowID);
                                }
                            }
                            else
                            {
                                return(Ok(excelExtensionReponse));
                            }
                        }
                    }
                }

                return(Ok(shipmentDataResponse));
            }
            catch (Exception ex)
            {
                AuditEventEntry.WriteEntry(new Exception(ex.Message));
                return(Ok(shipmentDataResponse.OperationExceptionMsg = ex.Message));
            }
        }
Ejemplo n.º 17
0
        //[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
        //[HttpPost]
        public ShipmentDataResponse CreateShipments(List <ExcelDataObject> excelDataObjects, int workflowID)
        {
            //int i = 0;
            ShipmentDataResponse shipmentDataResponse = new ShipmentDataResponse();

            try
            {
                List <ShipmentDataRequest> shipmentData = new List <ShipmentDataRequest>();
                foreach (ExcelDataObject excelDataObject in excelDataObjects)
                {
                    bool allPropertiesNull = !excelDataObject.GetType().GetProperties().Any(prop => prop == null);
                    if (allPropertiesNull)
                    {
                        ShipmentDataRequest shipmentDataRequest = new ShipmentDataRequest();

                        if (!string.IsNullOrWhiteSpace(excelDataObject.S_shipmentno))
                        {
                            shipmentDataRequest.BIL_TYP_TE = excelDataObject.S_billtype;
                            shipmentDataRequest.CCY_VAL_TE = string.Empty;
                            shipmentDataRequest.COD_TE     = string.Empty;
                            shipmentDataRequest.CSG_CTC_TE = excelDataObject.S_cneectc;

                            decimal decimalvalue = 0;
                            shipmentDataRequest.DIM_WGT_DE = 0;
                            if (!string.IsNullOrEmpty(excelDataObject.S_dimwei))
                            {
                                if (decimal.TryParse(excelDataObject.S_dimwei, out decimalvalue))
                                {
                                    shipmentDataRequest.DIM_WGT_DE = decimalvalue;
                                }
                            }

                            //shipmentDataRequest.DIM_WGT_DE = null; //Convert.ToDecimal(excelDataObject.S_dimwei);
                            shipmentDataRequest.DST_CTY_TE = excelDataObject.S_dstcity;
                            shipmentDataRequest.DST_PSL_TE = excelDataObject.S_dstpsl;
                            shipmentDataRequest.EXP_SLC_CD = excelDataObject.S_expslic;
                            shipmentDataRequest.EXP_TYP    = "顺丰即日";//excelDataObject.S_expslic;
                            shipmentDataRequest.IMP_NR     = excelDataObject.S_impr;
                            shipmentDataRequest.IMP_SLC_TE = excelDataObject.S_impslic;
                            shipmentDataRequest.IN_FLG_TE  = excelDataObject.S_inflight;
                            shipmentDataRequest.ORG_CTY_TE = excelDataObject.S_orgcity;

                            string pststring = Convert.ToString(excelDataObject.S_orgpsl);
                            if (InputValidations.IsDecimalFormat(pststring))
                            {
                                shipmentDataRequest.ORG_PSL_CD = Decimal.ToInt32(Decimal.Parse(pststring)).ToString();
                            }
                            else
                            {
                                shipmentDataRequest.ORG_PSL_CD = pststring;
                            }

                            // OU_FLG_TE = Convert.ToString(excelDataObject.S_outflight),

                            int intvalue = 0;
                            shipmentDataRequest.PCS_QTY_NR = 0;
                            if (!string.IsNullOrEmpty(excelDataObject.pcs))
                            {
                                if (int.TryParse(excelDataObject.pcs, out intvalue))
                                {
                                    shipmentDataRequest.PCS_QTY_NR = intvalue;
                                }
                            }

                            //shipmentDataRequest.PCS_QTY_NR = null;//Convert.ToInt32(Convert.ToDouble(excelDataObject.pcs));
                            shipmentDataRequest.PH_NR         = excelDataObject.S_ph;
                            shipmentDataRequest.PKG_NR_TE     = excelDataObject.S_packageno;
                            shipmentDataRequest.PKG_WGT_DE    = Convert.ToDecimal(excelDataObject.S_pkgwei);
                            shipmentDataRequest.PK_UP_TM      = null;   //Convert.ToString(excelDataObject.S_pkuptime),
                            shipmentDataRequest.PYM_MTD       = "寄付月结"; //excelDataObject.pymt;
                            shipmentDataRequest.RCV_ADR_TE    = excelDataObject.S_address1;
                            shipmentDataRequest.RCV_CPY_TE    = excelDataObject.S_receivercompany;
                            shipmentDataRequest.SHP_ADR_TE    = excelDataObject.address;
                            shipmentDataRequest.SHP_ADR_TR_TE = string.Empty;
                            shipmentDataRequest.SHP_CPY_NA    = excelDataObject.S_shippercompany;
                            shipmentDataRequest.SHP_CTC_TE    = excelDataObject.S_shptctc;

                            DateTime dDate;
                            int      intdate;
                            shipmentDataRequest.SHP_DT = null;
                            if (!string.IsNullOrEmpty(excelDataObject.S_shipdate))
                            {
                                if (int.TryParse(excelDataObject.S_shipdate, out intdate))
                                {
                                    shipmentDataRequest.SHP_DT = null;
                                }
                                else if (DateTime.TryParse(excelDataObject.S_shipdate, out dDate))
                                {
                                    shipmentDataRequest.SHP_DT = Convert.ToDateTime(excelDataObject.S_shipdate);
                                }
                            }
                            //if(!string.IsNullOrEmpty(excelDataObject.S_shipdate))
                            //{
                            //    if (DateTime.TryParse(excelDataObject.S_shipdate, out dDate))
                            //    {
                            //        shipmentDataRequest.SHP_DT = Convert.ToDateTime(excelDataObject.S_shipdate);
                            //    }
                            //}
                            shipmentDataRequest.SHP_DT            = null; //Convert.ToDateTime(excelDataObject.S_shipdate);
                            shipmentDataRequest.SHP_NR            = excelDataObject.S_shpr;
                            shipmentDataRequest.SHP_PH_TE         = excelDataObject.S_shptph;
                            shipmentDataRequest.SMT_NR_TE         = excelDataObject.S_shipmentno;
                            shipmentDataRequest.SMT_STA_NR        = 0;
                            shipmentDataRequest.SMT_STA_TE        = "Uploaded";
                            shipmentDataRequest.SMT_VAL_DE        = 0;
                            shipmentDataRequest.SMT_WGT_DE        = Convert.ToDecimal(excelDataObject.S_shptwei);
                            shipmentDataRequest.SVL_NR            = Convert.ToString(excelDataObject.svl);
                            shipmentDataRequest.WGT_UNT_TE        = excelDataObject.S_weiunit;
                            shipmentDataRequest.WFL_ID            = workflowID;
                            shipmentDataRequest.SF_TRA_LG_ID      = null;
                            shipmentDataRequest.QQS_TRA_LG_ID     = null;
                            shipmentDataRequest.FST_INV_LN_DES_TE = excelDataObject.S_1stinvoicelinedesc;
                            shipmentDataRequest.POD_RTN_SVC       = "0";

                            shipmentData.Add(shipmentDataRequest);
                        }
                    }
                }
                shipmentService              = new ShipmentService();
                shipmentDataResponse         = shipmentService.CreateShipments(shipmentData);
                shipmentDataResponse.Success = true;
                return(shipmentDataResponse);
            }
            catch (Exception exception)
            {
                shipmentDataResponse.OperationExceptionMsg = exception.Message;
                shipmentDataResponse.Success = true;
                AuditEventEntry.WriteEntry(new Exception(exception.Message));
            }
            return(shipmentDataResponse);
        }