Beispiel #1
0
        static JArray WritePassSet(PKPassFieldSet pfs)
        {
            var json = new JArray();

            foreach (var f in pfs)
            {
                var j = new JObject();

                j["key"]   = f.Key;
                j["label"] = f.Label;

                if (f is PKPassDateField)
                {
                    var fd = f as PKPassDateField;
                    j["value"] = fd.Value.ToString();

                    if (fd.DateStyle.HasValue)
                    {
                        j["dateStyle"] = fd.DateStyle.Value.ToString();
                    }
                    if (fd.TimeStyle.HasValue)
                    {
                        j["timeStyle"] = fd.TimeStyle.Value.ToString();
                    }
                    if (fd.IsRelative.HasValue)
                    {
                        j["isRelative"] = fd.IsRelative.Value;
                    }
                }
                else if (f is PKPassNumberField)
                {
                    var fd = f as PKPassNumberField;
                    j["value"] = fd.Value;

                    if (fd.NumberStyle.HasValue)
                    {
                        j["numberStyle"] = fd.NumberStyle.Value.ToString();
                    }
                }
                else if (f is PKPassStringField)
                {
                    var fd = f as PKPassStringField;
                    j["value"] = fd.Value;
                }

                if (f.TextAlignment.HasValue)
                {
                    j["textAlignment"] = f.TextAlignment.ToString();
                }

                json.Add(j);
            }

            return(json);
        }
Beispiel #2
0
 private PKPassField FindPKPassField(PKPassFieldSet source, string key)
 {
     foreach (PKPassField item in source)
     {
         if (item.Key == key)
         {
             return(item);
         }
     }
     return(null);
 }
Beispiel #3
0
        private static string BuildFields(PassKit kit, PKPassFieldSet fields)
        {
            if (fields == null)
            {
                return(string.Empty);
            }

            var sb = new StringBuilder();

            sb.Append("<dl>");

            foreach (PKPassField field in fields.Where(x => x != null))
            {
                if (string.IsNullOrEmpty(field.Label) && string.IsNullOrEmpty(field.Value))
                {
                    continue;
                }

                sb.Append($"<dt ");
                if (kit.LabelColor != null)
                {
                    sb.Append($"style=\"color: {kit.LabelColor} ;\"");
                }
                sb.Append($">");
                sb.Append($"{field.Label}</dt>");

                sb.Append($"<dd ");
                if (kit.ForegroundColor != null)
                {
                    sb.Append($"style=\"color: {kit.ForegroundColor} ;\"");
                }
                sb.Append($">");
                sb.Append($"{field.Value}</dd>");
            }

            sb.Append("</dl>");

            return(sb.ToString());
        }
Beispiel #4
0
        static void ParsePassFieldSet(JArray fieldItems, PKPassFieldSet set)
        {
            if (set == null)
            {
                set = new PKPassFieldSet();
            }

            foreach (JObject item in fieldItems)
            {
                if (item["value"] == null)
                {
                    throw new MissingFieldException("Field must have a value field!");
                }

                if (item["key"] == null)
                {
                    throw new MissingFieldException("Field must have a key field!");
                }

                PKPassField field   = null;
                double      tmp     = 0;
                DateTime    tmpDate = DateTime.UtcNow;

                if (item["dateStyle"] != null || item["timeStyle"] != null || item["isRelative"] != null)
                {
                    field = new PKPassDateField();

                    if (item["dateStyle"] != null)
                    {
                        ((PKPassDateField)field).DateStyle = (PKPassFieldDateStyle)Enum.Parse(typeof(PKPassFieldDateStyle), item["dateStyle"].ToString());
                    }

                    if (item["timeStyle"] != null)
                    {
                        ((PKPassDateField)field).TimeStyle = (PKPassFieldDateStyle)Enum.Parse(typeof(PKPassFieldDateStyle), item["timeStyle"].ToString());
                    }

                    if (item["isRelative"] != null)
                    {
                        ((PKPassDateField)field).IsRelative = item["isRelative"].Value <bool>();
                    }

                    ((PKPassDateField)field).Value = tmpDate.ToString();
                }
                else if (double.TryParse(item["value"].ToString(), out tmp))
                {
                    field = new PKPassNumberField();

                    if (item["numberStyle"] != null)
                    {
                        ((PKPassNumberField)field).NumberStyle = (PKPassFieldNumberStyle)Enum.Parse(typeof(PKPassFieldNumberStyle), item["numberStyle"].ToString());
                    }

                    ((PKPassNumberField)field).Value = tmp.ToString();
                }
                else
                {
                    field = new PKPassStringField();
                    ((PKPassStringField)field).Value = item["value"].ToString();
                }

                if (item["textAlignment"] != null)
                {
                    field.TextAlignment = (PKPassFieldTextAlignment)Enum.Parse(typeof(PKPassFieldTextAlignment), item["textAlignment"].ToString());
                }

                field.Key = item["key"].ToString();

                if (item["label"] != null)
                {
                    field.Label = item["label"].ToString();
                }

                set.Add(field);
            }
        }
Beispiel #5
0
        static void ParsePassFieldSet(JArray fieldItems, PKPassFieldSet set)
        {
            if (set == null)
                set = new PKPassFieldSet();

            foreach (JObject item in fieldItems)
            {
                if (item["value"] == null)
                    throw new MissingFieldException("Field must have a value field!");

                if (item["key"] == null)
                    throw new MissingFieldException("Field must have a key field!");

                PKPassField field = null;
                double tmp = 0;
                DateTime tmpDate = DateTime.UtcNow;

                if (item["dateStyle"] != null || item["timeStyle"] != null || item["isRelative"] != null)
                {
                    field = new PKPassDateField();

                    if (item["dateStyle"] != null)
                        ((PKPassDateField)field).DateStyle = (PKPassFieldDateStyle)Enum.Parse(typeof(PKPassFieldDateStyle), item["dateStyle"].ToString());

                    if (item["timeStyle"] != null)
                        ((PKPassDateField)field).TimeStyle = (PKPassFieldDateStyle)Enum.Parse(typeof(PKPassFieldDateStyle), item["timeStyle"].ToString());

                    if (item["isRelative"] != null)
                        ((PKPassDateField)field).IsRelative = item["isRelative"].Value<bool>();

                    ((PKPassDateField)field).Value = tmpDate;
                }
                else if (double.TryParse(item["value"].ToString(), out tmp))
                {
                    field = new PKPassNumberField();

                    if (item["numberStyle"] != null)
                        ((PKPassNumberField)field).NumberStyle = (PKPassFieldNumberStyle)Enum.Parse(typeof(PKPassFieldNumberStyle), item["numberStyle"].ToString());

                    ((PKPassNumberField)field).Value = tmp;
                }
                else
                {
                    field = new PKPassStringField();
                    ((PKPassStringField)field).Value = item["value"].ToString();
                }

                if (item["textAlignment"] != null)
                    field.TextAlignment = (PKPassFieldTextAlignment)Enum.Parse(typeof(PKPassFieldTextAlignment), item["textAlignment"].ToString());

                field.Key = item["key"].ToString();

                if (item["label"] != null)
                    field.Label = item["label"].ToString();

                set.Add(field);
            }
        }