private BarcodeGroup Generate(BarcodeWriter bw, BarcodeOptions options)//string ap, string dayFrom, string dayTo) { Random rndNumber = new Random(); // load flight details var flightResult = AccessGateFlightInfo.ToList().Where(x => x.FlightNo == options.FlightNo).ToList(); // If no result, return if (flightResult.Count == 0) { return new BarcodeGroup(); } // Make flight easier to access var flight = flightResult[0]; var carrier = flight.CarrierDesignator; if (carrier.Length < 3) carrier = carrier.PadRight(3, ' '); var pnr = ""; string name = options.Name.Length > 20 ? options.Name.Substring(0, 20) : options.Name.PadRight(20, ' '); var jDate = (flight.DepartDateTime.DayOfYear + 14).ToString().PadLeft(3, '0'); var securityValue = name.ToArray().Sum(c => (int)c) + flight.FromAirport.ToArray().Sum(c => (int)c) + options.CISN.ToArray().Sum(c => (int)c); var r = (rndNumber).Next(100, 700).ToString(); var securityFactor = Convert.ToInt32(r, 16); securityValue += securityFactor; pnr = string.Format("{0}{1}", securityFactor.ToString("X3"), securityValue.ToString("X4")); var d = ConfigurationManager.GetSAVConfigSetting("SmartAccessValidation", "CovertSerialNumber"); var barcode = string.Format("M1{0}E{1}{10}{2}{3}{4}{5}Y{6}{7}01E0293[{8}To{9}]{11}", name, pnr, flight.ToAirport, carrier, flight.FlightNo, jDate, options.Seat, options.CISN, options.StartDate, options.EndDate, options.AP, (Convert.ToInt32(d.KeyValue) + 1).ToString().PadLeft(6, '0')); var bg = new BarcodeGroup { barcode = barcode, image = bw.Write(barcode) }; return bg; }
public BarcodeGroup GenerateFastTrackBarcode(FastTrackOptions options) { Random rndNumber = new Random(); // Generate random name //var png = new PersonNameGenerator(); string name; if (rndNumber.Next(0, 2) == 0) { name = "Mrs Test Name";// + png.GenerateRandomFemaleFirstName() + " " + png.GenerateRandomLastName(); } else { name = "Mr Test Name";// + png.GenerateRandomMaleFirstName() + " " + png.GenerateRandomLastName(); } // random flight number var ag = AccessGateFlightInfo.ToList(DateTime.Today.AddDays(-7), DateTime.Today); Console.WriteLine(ag.Count); if (ag.Count == 0) { Console.WriteLine("No Flights"); return new BarcodeGroup(); } var randomFlight = ag[rndNumber.Next(0, ag.Count - 1)]; var flightNo = randomFlight.FlightNo; if (flightNo.Length < 5) { flightNo = flightNo.PadRight(5, ' '); } // random seat var seat = ""; var rndSeatLetter = rndNumber.Next(65, 73); var seatLetter = (char)rndSeatLetter; var rndSeatNumber = rndNumber.Next(1, 11); seat = string.Format("{0}{1}", rndSeatNumber, seatLetter).PadLeft(4, '0'); // random cisn var rndCisn = rndNumber.Next(0, 150); var cisn = rndCisn.ToString().PadLeft(5, '0'); // return barcode BarcodeOptions testParams = new BarcodeOptions() { Name = name, FlightNo = flightNo, Seat = seat, CISN = cisn, StartDate = DateTime.Today.AddDays(-7).ToString("yyyyMMdd"), EndDate = DateTime.Today.ToString("yyyyMMdd"), AP = "test" }; var bw = new BarcodeWriter { Format = BarcodeFormat.PDF_417, Options = { Margin = 2 } }; return Generate(bw, testParams); }