コード例 #1
0
        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;
            }
        }