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 kss ( 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