コード例 #1
0
        public async Task UpdateTable4()
        {
            var dataScorePoll            = FinalScorePollCollection.Find(it => true).ToList();
            var dataTable4               = Table4Collection.Find(it => true).ToList();
            var dataScorePollGroupByArea = dataScorePoll.GroupBy(it => it.IdArea).ToList();
            var listT4 = new List <ScoreArea>();

            foreach (var dataPoll in dataScorePollGroupByArea)
            {
                var dataScorePollGroupByParty = dataPoll.GroupBy(it => it.IdParty).ToList();
                foreach (var dataParty in dataScorePollGroupByParty)
                {
                    var getCurentData      = dataParty.OrderByDescending(it => it.datePoll).FirstOrDefault();
                    var getMatchDataTable4 = dataTable4.FirstOrDefault(it => it.IdArea == getCurentData.IdArea &&
                                                                       it.IdParty == getCurentData.IdParty);
                    if (getMatchDataTable4 != null)
                    {
                        getMatchDataTable4.Score          = getCurentData.Score;
                        getMatchDataTable4.Source         = getCurentData.Source;
                        getMatchDataTable4.StatusEdit     = false;
                        getMatchDataTable4.StatusAreaEdit = false;
                        getMatchDataTable4.Region         = getCurentData.Region;
                        getMatchDataTable4.IdRegion       = getCurentData.IdRegion;
                        // create tag
                        if (getMatchDataTable4.Tags == null)
                        {
                            getMatchDataTable4.Tags = new List <string>();
                        }
                        listT4.Add(getMatchDataTable4);
                        // Table4Collection.ReplaceOne(it => it.IdArea == getMatchDataTable4.IdArea
                        // && it.IdParty == getMatchDataTable4.IdParty, getMatchDataTable4);
                    }
                }
            }

            for (int i = 0; i < listT4.Count; i += 550)
            {
                var list = listT4.Skip(i).Take(550);
                ListT4Collection.InsertMany(list);
                await Task.Delay(1000);
            }

            foreach (var data in dataTable4.GroupBy(it => it.IdArea))
            {
                Table4Collection.DeleteMany(it => it.IdArea == data.Key);
            }
        }
コード例 #2
0
        public async Task FillDataIntoTable4_2()
        {
            var dataListT4 = ListT4Collection.Find(it => true).ToList();

            //var listTable4P2 = dataListT4.Skip(dataListT4.Count / 2).Take(6000).ToList();
            for (int i = 0; i < dataListT4.Count; i += 550)
            {
                var list = dataListT4.Skip(i).Take(550);
                Table4Collection.InsertMany(list);
                await Task.Delay(1000);
            }

            foreach (var data in dataListT4)
            {
                ListT4Collection.DeleteOne(it => it.IdArea == data.IdArea &&
                                           it.IdParty == data.IdParty);
            }
        }