public void loadFromDictionary(Dictionary <string, object> data) { if (data == null) { return; } //NOTE: fix for https://github.com/BranchMetrics/xamarin-branch-deep-linking/issues/97 expirationDate = new DateTime(2200, 12, 30); if (data.ContainsKey("$canonical_identifier") && data["$canonical_identifier"] != null) { canonicalIdentifier = data["$canonical_identifier"].ToString(); } if (data.ContainsKey("$canonical_url") && data["$canonical_url"] != null) { canonicalUrl = data["$canonical_url"].ToString(); } if (data.ContainsKey("$og_title") && data["$og_title"] != null) { title = data["$og_title"].ToString(); } if (data.ContainsKey("$og_description") && data["$og_description"] != null) { contentDescription = data["$og_description"].ToString(); } if (data.ContainsKey("$og_image_url") && data["$og_image_url"] != null) { imageUrl = data["$og_image_url"].ToString(); } if (data.ContainsKey("$publicly_indexable")) { if (!string.IsNullOrEmpty(data["$publicly_indexable"].ToString())) { contentIndexMode = Convert.ToInt32(data["$publicly_indexable"].ToString()); } } if (data.ContainsKey("$locally_indexable")) { if (!string.IsNullOrEmpty(data["$locally_indexable"].ToString())) { localIndexMode = Convert.ToInt32(data["$locally_indexable"].ToString()); } } if (data.ContainsKey("$exp_date")) { if (!string.IsNullOrEmpty(data["$exp_date"].ToString())) { expirationDate = new DateTime(Convert.ToInt64(data["$exp_date"].ToString()) * 10000); // milliseconds to ticks } } if (data.ContainsKey("$keywords")) { if (data["$keywords"] != null) { List <object> keywordsTemp = data["$keywords"] as List <object>; if (keywordsTemp != null) { foreach (object obj in keywordsTemp) { keywords.Add(obj.ToString()); } } } } if (data.ContainsKey("metadata")) { if (data["metadata"] != null) { //Dictionary<string, object> metaTemp = data["metadata"] as Dictionary<string, object>; Dictionary <string, object> metaTemp = JsonConvert.DeserializeObject <Dictionary <string, object> >(data["metadata"] as string); if (metaTemp != null) { if (metaTemp.ContainsKey("+clicked_branch_link")) { if (metaTemp["+clicked_branch_link"].ToString().Equals("1")) { metaTemp["+clicked_branch_link"] = "true" as object; } else { metaTemp["+clicked_branch_link"] = "false" as object; } } metadata.loadFromDictionary(metaTemp); } } } }
public void loadFromDictionary(Dictionary <string, object> data) { if (data == null) { return; } if (data.ContainsKey("$canonical_identifier") && data["$canonical_identifier"] != null) { canonicalIdentifier = data["$canonical_identifier"].ToString(); } if (data.ContainsKey("$canonical_url") && data["$canonical_url"] != null) { canonicalUrl = data["$canonical_url"].ToString(); } if (data.ContainsKey("$og_title") && data["$og_title"] != null) { title = data["$og_title"].ToString(); } if (data.ContainsKey("$og_description") && data["$og_description"] != null) { contentDescription = data["$og_description"].ToString(); } if (data.ContainsKey("$og_image_url") && data["$og_image_url"] != null) { imageUrl = data["$og_image_url"].ToString(); } if (data.ContainsKey("$publicly_indexable")) { if (!string.IsNullOrEmpty(data["$publicly_indexable"].ToString())) { contentIndexMode = Convert.ToInt32(data["$publicly_indexable"].ToString()); } } if (data.ContainsKey("$locally_indexable")) { if (!string.IsNullOrEmpty(data["$locally_indexable"].ToString())) { localIndexMode = Convert.ToInt32(data["$locally_indexable"].ToString()); } } if (data.ContainsKey("$exp_date")) { if (!string.IsNullOrEmpty(data["$exp_date"].ToString())) { expirationDate = new DateTime(Convert.ToInt64(data["$exp_date"].ToString()) * 10000); // milliseconds to ticks } } if (data.ContainsKey("$keywords")) { if (data["$keywords"] != null) { List <object> keywordsTemp = data["$keywords"] as List <object>; if (keywordsTemp != null) { foreach (object obj in keywordsTemp) { keywords.Add(obj.ToString()); } } } } if (data.ContainsKey("metadata")) { if (data["metadata"] != null) { Dictionary <string, object> metaTemp = data["metadata"] as Dictionary <string, object>; if (metaTemp != null) { if (metaTemp.ContainsKey("+clicked_branch_link")) { if (metaTemp["+clicked_branch_link"].ToString().Equals("1")) { metaTemp["+clicked_branch_link"] = "true" as object; } else { metaTemp["+clicked_branch_link"] = "false" as object; } } metadata.loadFromDictionary(metaTemp); } } } }