private void UpdateLabels(CocApi cocApi, ClanApiModel downloadedClan) { if (Labels == null && downloadedClan.Labels == null) { return; } if (Labels != null && Labels.Count() > 0 && (downloadedClan.Labels == null || downloadedClan.Labels.Count() == 0)) { cocApi.ClanLabelsRemovedEvent(downloadedClan, Labels); //Labels = downloadedClan.Labels; } else if ((Labels == null || Labels.Count() == 0) && downloadedClan.Labels != null && downloadedClan.Labels.Count() > 0) { cocApi.ClanLabelsAddedEvent(downloadedClan, downloadedClan.Labels); //Labels = downloadedClan.Labels; } else { List <ClanLabelApiModel> added = new List <ClanLabelApiModel>(); List <ClanLabelApiModel> removed = new List <ClanLabelApiModel>(); foreach (ClanLabelApiModel labelApiModel in Labels.EmptyIfNull()) { if (!downloadedClan.Labels.Any(l => l.Id == labelApiModel.Id)) { removed.Add(labelApiModel); } } foreach (ClanLabelApiModel labelApiModel in downloadedClan.Labels.EmptyIfNull()) { if (!Labels.Any(l => l.Id == labelApiModel.Id)) { added.Add(labelApiModel); } } cocApi.ClanLabelsRemovedEvent(downloadedClan, removed); cocApi.ClanLabelsAddedEvent(downloadedClan, added); //Labels = downloadedClan.Labels; } }