public override PassGeneratorRequest GetPass(string serialNumber) { var request = new PassGeneratorRequest { PassTypeIdentifier = PassTypeIdentifier, SerialNumber = Guid.NewGuid().ToString("D") }; var parameters = new TemplateModel(); parameters.AddField("event", FieldAttribute.Value, "Jeff Wayne's War of the Worlds"); var eventDate = DateTime.Now.AddDays(1); parameters.AddField("doors-open", FieldAttribute.Value, new DateTime(eventDate.Year, eventDate.Month, eventDate.Day, 20, 30, 00)); parameters.AddField("seating-section", FieldAttribute.Value, 10); request.AddBarcode(BarcodeType.PKBarcodeFormatPDF417, "01927847623423234234", "iso-8859-1", "01927847623423234234"); request.LoadTemplate("Event", parameters); return(request); }
public override PassGeneratorRequest GetPass(string serialNumber) { var request = new PassGeneratorRequest { PassTypeIdentifier = PassTypeIdentifier, SerialNumber = Guid.NewGuid().ToString("D") }; var parameters = new TemplateModel(); parameters.AddField("origin", FieldAttribute.Label, "San Francisco"); parameters.AddField("origin", FieldAttribute.Value, "SFO"); parameters.AddField("destination", FieldAttribute.Label, "London Heathrow"); parameters.AddField("destination", FieldAttribute.Value, "LHR"); parameters.AddField("seat", FieldAttribute.Value, "7A"); parameters.AddField("boarding-gate", FieldAttribute.Value, "F12"); parameters.AddField("passenger-name", FieldAttribute.Value, "John Appleseed"); request.AddBarcode(BarcodeType.PKBarcodeFormatPDF417, "M1APPLESEED/JMR EZQ7O92 GVALHRBA 00723319C002F00009100", "iso-8859-1"); request.LoadTemplate("BoardingPass", parameters); return(request); }
public void TestMethod1() { PassGeneratorRequest request = new PassGeneratorRequest(); request.ExpirationDate = new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Local); DateTime offset = new DateTime(2018, 01, 05, 12, 00, 0); TimeZoneInfo zone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); DateTimeOffset offsetConverted = new DateTimeOffset(offset, zone.GetUtcOffset(offset)); request.RelevantDate = offsetConverted; using (MemoryStream ms = new MemoryStream()) { using (StreamWriter sr = new StreamWriter(ms)) { using (JsonWriter writer = new JsonTextWriter(sr)) { writer.Formatting = Formatting.Indented; request.Write(writer); } string jsonString = Encoding.UTF8.GetString(ms.ToArray()); var settings = new JsonSerializerSettings { DateParseHandling = DateParseHandling.None }; dynamic json = JsonConvert.DeserializeObject(jsonString, settings); Assert.AreEqual("2018-01-01T00:00:00+00:00", (string)json["expirationDate"]); Assert.AreEqual("2018-01-05T12:00:00-05:00", (string)json["relevantDate"]); } } }
public void EnsurePassIsGeneratedCorrectly() { PassGeneratorRequest request = new PassGeneratorRequest(); request.ExpirationDate = new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Local); request.Nfc = new Nfc("My NFC Message", "SKLSJLKJ"); DateTime offset = new DateTime(2018, 01, 05, 12, 00, 0); TimeZoneInfo zone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); DateTimeOffset offsetConverted = new DateTimeOffset(offset, zone.GetUtcOffset(offset)); request.RelevantDate = offsetConverted; request.AddAuxiliaryField(new StandardField() { Key = "aux-1", Value = "Test", Label = "Label", Row = 1 }); using (MemoryStream ms = new MemoryStream()) { using (StreamWriter sr = new StreamWriter(ms)) { using (JsonWriter writer = new JsonTextWriter(sr)) { writer.Formatting = Formatting.Indented; request.Write(writer); } string jsonString = Encoding.UTF8.GetString(ms.ToArray()); var settings = new JsonSerializerSettings { DateParseHandling = DateParseHandling.None }; dynamic json = JsonConvert.DeserializeObject(jsonString, settings); Assert.AreEqual("2018-01-01T00:00:00+00:00", (string)json["expirationDate"]); Assert.AreEqual("2018-01-05T12:00:00-05:00", (string)json["relevantDate"]); var nfcPayload = (JToken)json["nfc"]; var nfcMessage = (string)nfcPayload["message"]; Assert.AreEqual("My NFC Message", nfcMessage); var genericKeys = json["generic"]; Assert.AreEqual(1, genericKeys["auxiliaryFields"].Count); var auxField = genericKeys["auxiliaryFields"][0]; Assert.AreEqual("aux-1", (string)auxField["key"]); Assert.AreEqual("Test", (string)auxField["value"]); Assert.AreEqual("Label", (string)auxField["label"]); Assert.AreEqual(1, (int)auxField["row"]); } } }
public override PassGeneratorRequest GetPass(string serialNumber) { PassGeneratorRequest request = new PassGeneratorRequest(); request.PassTypeIdentifier = PassTypeIdentifier; request.SerialNumber = Guid.NewGuid().ToString("D"); TemplateModel parameters = new TemplateModel(); request.AddBarcode(BarcodeType.PKBarcodeFormatPDF417, "01927847623423234234", "UTF-8", "01927847623423234234"); request.LoadTemplate("Coupon", parameters); return(request); }
protected IHttpActionResult GeneratePass(PassProvider provider, string serialNumber) { PassGeneratorRequest request = provider.GetPass(serialNumber); if (request != null) { // Passbook webService is configured, enable it in the generated pass if (!string.IsNullOrEmpty(mServiceUrl)) { request.WebServiceUrl = mServiceUrl; request.AuthenticationToken = GenerateAuthorizationToken(provider.PassTypeIdentifier, request.SerialNumber); } PassGenerator passGenerator = new PassGenerator(); byte[] pass = passGenerator.Generate(request); return(new PassbookContentResult(pass)); } return(null); }
public void EnsureFieldHasLocalTime() { PassGeneratorRequest request = new PassGeneratorRequest(); request.ExpirationDate = new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Local); request.Nfc = new Nfc("My NFC Message", "SKLSJLKJ"); DateTime offset = new DateTime(2018, 01, 05, 12, 00, 0); TimeZoneInfo zone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); DateTimeOffset offsetConverted = new DateTimeOffset(offset, zone.GetUtcOffset(offset)); request.RelevantDate = offsetConverted; request.AddAuxiliaryField(new StandardField() { Key = "aux-1", Value = "Test", Label = "Label", Row = 1 }); var local = DateTime.Now; local = new DateTime(local.Year, local.Month, local.Day, local.Hour, local.Minute, local.Second, local.Kind); request.AddAuxiliaryField(new DateField() { Key = "datetime-1", Value = local, Label = "Label", }); var utc = DateTime.UtcNow; utc = new DateTime(utc.Year, utc.Month, utc.Day, utc.Hour, utc.Minute, utc.Second, utc.Kind); request.AddAuxiliaryField(new DateField() { Key = "datetime-2", Value = utc, Label = "Label", }); using (MemoryStream ms = new MemoryStream()) { using (StreamWriter sr = new StreamWriter(ms)) { using (JsonWriter writer = new JsonTextWriter(sr)) { writer.Formatting = Formatting.Indented; request.Write(writer); } string jsonString = Encoding.UTF8.GetString(ms.ToArray()); Console.WriteLine(jsonString); var settings = new JsonSerializerSettings { DateParseHandling = DateParseHandling.None }; dynamic json = JsonConvert.DeserializeObject(jsonString, settings); Assert.AreEqual("2018-01-01T00:00:00+00:00", (string)json["expirationDate"]); Assert.AreEqual("2018-01-05T12:00:00-05:00", (string)json["relevantDate"]); var nfcPayload = (JToken)json["nfc"]; var nfcMessage = (string)nfcPayload["message"]; Assert.AreEqual("My NFC Message", nfcMessage); var genericKeys = json["generic"]; Assert.AreEqual(1, genericKeys["auxiliaryFields"].Count); var auxField = genericKeys["auxiliaryFields"][0]; Assert.AreEqual("aux-1", (string)auxField["key"]); Assert.AreEqual("Test", (string)auxField["value"]); Assert.AreEqual("Label", (string)auxField["label"]); Assert.AreEqual(1, (int)auxField["row"]); var datetimeField = genericKeys["auxiliaryFields"][1]; Assert.AreEqual("datetime-1", (string)datetimeField["key"]); string datetime1 = (string)datetimeField["value"]; string expected1start = string.Format("{0:yyyy-MM-ddTHH:mm}", local); Assert.IsTrue(datetime1.StartsWith(expected1start)); Assert.IsFalse(datetime1.Contains("Z")); Assert.AreEqual("Label", (string)datetimeField["label"]); var utcdatetimeField = genericKeys["auxiliaryFields"][2]; Assert.AreEqual("datetime-1", (string)utcdatetimeField["key"]); string datetime2 = (string)utcdatetimeField["value"]; string expected2 = string.Format("{0:yyyy-MM-ddTHH:mm}Z", utc); Assert.AreEqual(expected2, datetime2); Assert.AreEqual("Label", (string)utcdatetimeField["label"]); } } }