public static void Messenger(this Contact contact, MessengerTypeEnum type, string value) { if (String.IsNullOrEmpty(value)) { return; } contact.ChangeValueDelegate += delegate(Contact x) { x.Fields = x.Fields ?? new List <Field>(); if (!x.Fields.Any(fl => fl.Id == (int)ContactFieldsEnum.Messanger)) { x.Fields.Add(new Field { Id = (int)ContactFieldsEnum.Messanger, Values = new List <FieldValue>() }); } var current = x.Messenger(); if (current != null && current.Any(p => p.Key == type)) { x.Fields.FirstOrDefault(fl => fl.Id == (int)ContactFieldsEnum.Messanger).Values.FirstOrDefault(p => p.Enum == (int)type).Value = value.ClearEmail(); } else { x.Fields.FirstOrDefault(fl => fl.Id == (int)ContactFieldsEnum.Messanger).Values.Add(new FieldValue { Enum = (int)type, Value = value.ClearEmail() }); } }; }
public virtual void AddMessenger(string value, MessengerTypeEnum type) { if (String.IsNullOrEmpty(value) || type == default) { return; } SetField((int)ContactSystemFields.Messenger, value, (int)type, add: true); }