protected (bool, ValidationResult) CheckExistence(OutlookContext context, int id, string email, string[] addresses, string err_prefix, int send_type) { bool distinct = false; foreach (string user in addresses) { if (user.Length == 0) { continue; } if (user.Equals(email)) { continue; } if (user.StartsWith("g:")) { string group = user.Substring(2); Group g = context.Groups.FirstOrDefault(x => (x.GroupName == group && x.OwnerId == id)); if (g == null) { return(false, new ValidationResult($"{err_prefix}: Group {group} doesn't exist!")); } List <string> members = context.GetUsersFromGroup(g.Id); foreach (string member in members) { Debug.WriteLine(member); if (Addresses.ContainsKey(member)) { if (Addresses[member] != send_type) { return(false, new ValidationResult($"{err_prefix}: User {member} from {group} has multiple delivery rules. Remove unnecesary rules!")); } } Addresses[member] = send_type; } distinct = true; } else { User u = context.Users.FirstOrDefault(x => x.EmailAddress == user); if (u == null) { return(false, new ValidationResult($"{err_prefix}: User {user} doesn't exist!")); } if (Addresses.ContainsKey(user)) { if (Addresses[user] != send_type) { return(false, new ValidationResult($"{err_prefix}: User {user} has multiple delivery rules. Remove unnecesary rules!")); } } Addresses[user] = send_type; distinct = true; } } return(distinct, ValidationResult.Success); }