private static MCMergeVar[] GetMergeVars(IMailChimpContact contact) { var list = new List<MCMergeVar> { new MCMergeVar { req = true, tag = IdField, val = contact.UserId.ToString() }, }; if (contact.Groups.Count > 0) { list.Add(new MCMergeVar { req = false, tag = "INTERESTS", val = string.Join(", ", contact.Groups.ToArray()) }); } foreach (var mergeVar in _listColumns) { if (contact.FieldValues.ContainsKey(mergeVar.name)) { list.Add(new MCMergeVar { req = mergeVar.req, name = mergeVar.name, tag = mergeVar.tag, val = contact.FieldValues[mergeVar.name] ?? "" }); } } return list.ToArray(); }
private static bool DifferenceInMergeVars(IEnumerable<MCMergeVar> merges, IMailChimpContact contact) { var mergeVars = GetMergeVars(contact); var result = true; mergeVars.ForEach(var => result = result && merges.Any(merge => merge.name == var.name && merge.val == var.val)); return !result; }