Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C# by 100102628618 ( 7 years ago )
using NorthStar.Core;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Windows;

namespace SringOperations
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        string[] elements;

        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            
            string textFile = $"C:\\Users\\XT20392\\source\\repos\\SringOperations\\{inputText.Text}";
            string response = File.ReadAllText(textFile);

            elements = response.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
            response = RemoveIllegalCharacters(response);
            

            var sealNo = GetSealNumber(response);
            var shipmentId = GetShipmentId(response);
            string weight = ""; string weightUnit = "";
            GetWeight(response, out weight, out weightUnit); 
            var carrierName = GetNameOfCarrier();
            var shipper = "";
            var consignee = "";
            GetShipperAndConginee(response, out shipper, out consignee);

            int pieceCount = 0;
            string pieceType = "";
            GetPieceTypeAndCount(response, out pieceCount, out pieceType);
            MessageBox.Show($"Seal no-{sealNo} ShipmentId-{shipmentId} Weight - {weight}, Weight Unit - {weightUnit}, Carrier Name - {carrierName}, Shipper - {shipper}, Consignee - {consignee}, Piece Count - {pieceCount}, Piece Type - {pieceType}");
        }

        public static string RemoveIllegalCharacters(string data)
        {
            var result = data.TrimStart('.');
            result = result.Replace("|", string.Empty);
            if (result == ".")
            {
                result = string.Empty;
            }

            return result;
        }

        private string GetSealNumber(string response)
        {
            var sealNo = "";
            try
            {
                var loadLine = elements.Where(item => item.ToUpper().Contains("LOAD")).FirstOrDefault();
                var subLine = loadLine.Substring(0, loadLine.ToUpper().IndexOf("LOAD")).Trim();
                sealNo = subLine.Split(' ').OrderByDescending(s => s.Length).First();

                if (string.IsNullOrEmpty(sealNo))
                {
                    var sealLine = elements.Where(item => item.ToUpper().Contains("SEAL")).FirstOrDefault();
                    var sealLineArray = sealLine.Split(' ');
                    if (sealLineArray.Length > 2)
                    {
                        sealNo = sealLineArray[2];                       
                    }
                }

                if (!string.IsNullOrEmpty(sealNo) && sealNo.Length < 3)
                {
                    var seal1Line = elements.Where(item => item.ToUpper().Contains("SEAL#")).FirstOrDefault();
                    var seal1LineArray = seal1Line.Split(' ');
                    if (seal1LineArray.Length > 2)
                    {
                        sealNo = seal1LineArray[1];
                    }
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }
            return Regex.Replace(sealNo, @"\s", "");
        }

        private string GetShipmentId(string response)
        {
            var shipmentId = "";
            try
            {
                var loadLine = elements.Where(item => item.ToUpper().Contains("LOAD")).FirstOrDefault();

                var loadIndex = loadLine.ToUpper().IndexOf("LOAD") + 4;
                var loadLineArray = loadLine.Substring(loadIndex, loadLine.Length - loadIndex).Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); 
                if (loadLineArray.Length > 1)
                {
                    if (loadLineArray.Length > 2)
                    {
                        shipmentId = loadLineArray[1] + loadLineArray[2];
                    }
                    else if (loadLineArray.Length == 2)
                    {
                        shipmentId = loadLineArray[1];
                    }
                }
            }
            catch (Exception e)
            {
            }

            return Regex.Replace(shipmentId, @"\s", "");
        }

        private void GetWeight(string response, out string weight, out string weightUnitType)
        {
            weight = "";
            weightUnitType = "";
            try
            {
                var loadLine = elements.Where(item => item.ToUpper().Contains("TOTAL")).FirstOrDefault();

                var loadIndex = loadLine.ToUpper().IndexOf("TOTAL") + 5;
                var loadLineArray = loadLine.Substring(loadIndex, loadLine.Length - loadIndex).Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                if (loadLineArray.Length > 1)
                {
                    weight = Convert.ToInt32(Math.Floor(Convert.ToDouble(loadLineArray[0]))).ToString();
                }

                if (loadLine.ToUpper().Contains("LB"))
                {
                    //this.SelectedWeightUnit = 1;
                    weightUnitType = "L";// _activityUtility.GetWeightUnitFromUi(this.WeightUnitList.ElementAt(this.SelectedWeightUnit));
                }
                else
                {
                    //this.SelectedWeightUnit = 0;
                    weightUnitType = "K";// _activityUtility.GetWeightUnitFromUi(this.WeightUnitList.ElementAt(this.SelectedWeightUnit));
                }
            }
            catch (Exception e)
            {

            }
        }       

        private string GetNameOfCarrier()
        {
            string carrierName = "";
            try
            {
                for (int i = 0; i <= elements.Length - 1; i++)
                {
                    string element = elements[i].ToUpper();
                    if (element.Contains("NAME OF") || element.Contains("PRINT") || element.Contains("TRAILER"))
                    {
                        string nextElement = elements[i + 1].ToUpper();
                        if (nextElement.Contains("NAME OF") || nextElement.Contains("PRINT") || nextElement.Contains("TRAILER"))
                        {
                            var elementArray = elements[i + 2].Split(' ');
                            carrierName = elementArray[0].Trim().ToUpper();
                            break;
                        }
                        else
                        {
                            var elementArray = elements[i + 1].Split(' ');
                            carrierName = elementArray[0].Trim().ToUpper();
                            break;
                        }
                    }
                }

            }
            catch (Exception e)
            {
            }

            return carrierName;
        }

        private void GetRawData(string response)
        {
            var RawData = "";
            try
            {
                if (response.Length > Constants.MaxLengthForRawData)
                    RawData = RemoveIllegalCharacters(response.Substring(0, Constants.MaxLengthForRawData)).Trim();
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }
        }

        private void GetShipperAndConginee(string response, out string shipper, out string consignee)
        {
            shipper = "";
            consignee = "";
            try
            {
                var lines = elements.Where(item => item.Count(item1 => item1 == '_') > 1).ToList();
                var shipperConsigneeline = lines.OrderByDescending(s => s.Length).First();

                var shipperConsigneeSubline = shipperConsigneeline.Split(' ').Where(item => item.Count(item1 => item1 == '_') > 1).FirstOrDefault();
                int firstIndex = shipperConsigneeSubline.IndexOf('_');
                int lastIndex = shipperConsigneeSubline.LastIndexOf('_');

                shipper = shipperConsigneeSubline.Substring(0, firstIndex);
                consignee = shipperConsigneeSubline.Substring(firstIndex + 1, lastIndex - firstIndex - 1);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }
        }
        private void GetPieceTypeAndCount(string response, out int pieceCount, out string pieceCountType)
        {
            pieceCount = 0;
            pieceCountType = "";            
            try
            {
                var pieceCodeLine = elements.Where(item => item.ToUpper().Contains("TOTAL")).FirstOrDefault();
                var pieceTypeLine = elements.Where(item => item.ToUpper().Contains(Constants.Pallets) && item.ToUpper().Contains(Constants.Gaylords)).LastOrDefault();
                var pieceTypeCartonsLine = elements.Where(item => item.ToUpper().Contains(Constants.Cartons)).LastOrDefault();

                var pieceCountList = pieceCodeLine.Split(' ');

                if (pieceCountList.Length > 1 && Constants.DigitRegex.IsMatch(pieceCountList[0]))
                {
                    pieceCount = Convert.ToInt32(pieceCountList[0]);
                }

                if (!string.IsNullOrEmpty(pieceTypeCartonsLine))
                {
                    pieceCountType = "Cartons";
                }
                else if (!string.IsNullOrEmpty(pieceTypeLine))
                {
                    pieceCountType = "Pallets";
                }   
            }
            catch (Exception e)
            {
            }
        }
    }
}

 

Revise this Paste

Children: 99995
Your Name: Code Language: