Example #1
0
        public List <string> GetAllTag()
        {
            var getDataTag = Table4Collection.Find(it => it.IdParty == "034").ToList();
            var listTag    = new List <string>();

            foreach (var data in getDataTag)
            {
                foreach (var tags in data.Tags)
                {
                    // if (tags != "ชนะ" && tags != "แพ้" && tags != "")
                    if (tags != "" && data.Tags.Any(i => i != tags))
                    {
                        listTag.Add(tags);
                    }
                }
            }
            var getAllDuplicateTag      = listTag.GroupBy(it => it).ToList();
            var listTagWithOutDuplicate = new List <string>();

            foreach (var data in getAllDuplicateTag)
            {
                listTagWithOutDuplicate.Add(data.Key);
            }
            return(listTagWithOutDuplicate);
        }
Example #2
0
        public void MockPrototypeScoreTable4()
        {
            var getData         = ScorePollV3Collection.Find(it => true).ToList();
            var groupByArea     = getData.GroupBy(it => it.IdArea).ToList();
            var listScoreTable4 = new List <ScoreArea>();

            foreach (var item in groupByArea)
            {
                var groupByParty = item.GroupBy(it => it.IdParty).ToList();
                foreach (var data in groupByParty)
                {
                    if (data.Key != "000" && data.Key != "888")
                    {
                        var getCurrentScore = data.OrderByDescending(it => it.datePoll).ToList().FirstOrDefault();
                        listScoreTable4.Add(new ScoreArea
                        {
                            Id      = Guid.NewGuid().ToString(),
                            IdArea  = getCurrentScore.IdArea,
                            IdParty = getCurrentScore.IdParty,
                            Score   = getCurrentScore.Score,
                            Source  = getCurrentScore.Source
                        });
                    }
                }
            }
            Table4Collection.DeleteMany(it => true);
            Table4Collection.InsertMany(listScoreTable4);
        }
Example #3
0
        // public void UpdateTable2()
        public async Task UpdateTable2()
        {
            var dataTable2 = Table2Collection.Find(it => true).ToList();

            if (dataTable2.Any())
            {
                foreach (var data in dataTable2.GroupBy(it => it.IdArea))
                {
                    Table2Collection.DeleteMany(it => it.IdArea == data.Key);
                }
            }
            // Problem can't insert
            try
            {
                var getData = Table4Collection.Find(it => true).ToList();
                for (int i = 0; i < getData.Count; i += AtATime)
                {
                    var list = getData.Skip(i).Take(AtATime);
                    Table2Collection.InsertMany(list);
                    await Task.Delay(Delay);
                }
            }
            catch (System.Exception e)
            {
                throw e;
            }
        }
Example #4
0
        public void SetTag()
        {
            var getData       = Table4Collection.Find(it => true).ToList();
            var groupByArea   = getData.GroupBy(it => it.IdArea).ToList();
            var listScoreArea = new List <ScoreArea>();

            foreach (var item in groupByArea)
            {
                var listMaxScore = item.Where(it => it.Score == item.Max(i => i.Score)).ToList();
                var getMaxScore  = listMaxScore.FirstOrDefault();
                foreach (var data in item)
                {
                    if (data.Id == getMaxScore.Id)
                    {
                        data.Tags = new List <string> {
                            "ชนะ"
                        };
                        listScoreArea.Add(data);
                    }
                    else
                    {
                        data.Tags = new List <string> {
                            "แพ้"
                        };
                        listScoreArea.Add(data);
                    }
                }
            }
            Table4Collection.DeleteMany(it => true);
            Table4Collection.InsertMany(listScoreArea);
        }
        public void DeleteTable4()
        {
            var dataTable4 = Table4Collection.Find(it => true).ToList();

            foreach (var data in dataTable4.GroupBy(it => it.IdArea))
            {
                Table4Collection.DeleteMany(it => it.IdArea == data.Key);
            }
        }
Example #6
0
        public List <MyParty> GetMaxScoreAndMyScore()
        {
            var getData   = Table4Collection.Find(it => true).ToList().GroupBy(it => it.IdArea);
            var listScore = new List <MyParty>();

            foreach (var item in getData)
            {
                var getWinnerArea = item.FirstOrDefault(it => it.Score == item.Max(i => i.Score));
                var getMyParty    = item.FirstOrDefault(it => it.IdParty == "034");
                if (getMyParty != null)
                {
                    listScore.Add(new MyParty
                    {
                        Id             = Guid.NewGuid().ToString(),
                        IdArea         = item.Key,
                        NameArea       = getWinnerArea.NameArea,
                        PartyWin       = getWinnerArea.NameParty,
                        scoreMax       = getWinnerArea.Score,
                        scoreMyParty   = getMyParty.Score,
                        StatusAreaEdit = getWinnerArea.StatusAreaEdit,
                        Region         = getWinnerArea.Region,
                        IdRegion       = getWinnerArea.IdRegion
                    });
                }
                else
                {
                    listScore.Add(new MyParty
                    {
                        Id             = Guid.NewGuid().ToString(),
                        IdArea         = item.Key,
                        NameArea       = getWinnerArea.NameArea,
                        PartyWin       = getWinnerArea.NameParty,
                        scoreMax       = getWinnerArea.Score,
                        scoreMyParty   = 0,
                        StatusAreaEdit = getWinnerArea.StatusAreaEdit,
                        Region         = getWinnerArea.Region,
                        IdRegion       = getWinnerArea.IdRegion
                    });
                }
            }

            var dataGroupByRegion = listScore.OrderBy(it => it.IdRegion).GroupBy(it => it.IdRegion).ToList();
            var sortData          = new List <MyParty>();

            foreach (var dataRegion in dataGroupByRegion)
            {
                var dataGroupByArea = dataRegion.OrderBy(it => it.IdArea).GroupBy(it => it.IdArea).ToList();
                foreach (var dataArea in dataGroupByArea)
                {
                    var data = dataArea.FirstOrDefault(it => it.IdArea == dataArea.Key);
                    sortData.Add(data);
                }
            }
            return(sortData);
        }
        public async Task MockTable4()
        {
            var dataDemoTable4 = DemoTable4Collection.Find(it => true).ToList();

            for (int i = 0; i < dataDemoTable4.Count; i += AtATime)
            {
                var list = dataDemoTable4.Skip(i).Take(AtATime);
                Table4Collection.InsertMany(list);
                await Task.Delay(Delay);
            }
        }
Example #8
0
        public TextTag GetTagArea(string idArea)
        {
            var tagDataTable4 = Table4Collection.Find(it => it.IdArea == idArea.ToUpper()).FirstOrDefault();
            var tags          = new TextTag();

            if (tagDataTable4 != null)
            {
                tags.Text = string.Join("#", tagDataTable4.Tags);
            }
            else
            {
                tags.Text = "";
            }
            return(tags);
        }
Example #9
0
        public void SetTags([FromBody] TextTag newTag, string idArea)
        {
            var getDataTable4 = Table4Collection.Find(it => it.IdArea == idArea.ToUpper()).ToList();
            var listTags      = newTag.Text.Split('#').Distinct().ToList();

            foreach (var dataTable4 in getDataTable4)
            {
                if (dataTable4.Tags != null)
                {
                    dataTable4.Tags.RemoveAll(it => true);
                }
                dataTable4.Tags.AddRange(listTags);
                Table4Collection.ReplaceOne(it => it.IdArea == dataTable4.IdArea && it.Id == dataTable4.Id, dataTable4);
            }
        }
        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);
            }
        }
        public async Task FillDataIntoTable4_2()
        {
            var dataListT4 = ListT4Collection.Find(it => true).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);
            }
        }
Example #12
0
        public List <ScoreArea> GetAllAreaTable4()
        {
            var getData = Table4Collection.Find(it => true).ToList()
                          .OrderBy(it => it.IdRegion)
                          .GroupBy(it => it.IdRegion).ToList();
            var listArea = new List <ScoreArea>();

            foreach (var dataRegion in getData)
            {
                var dataGroupByArea = dataRegion.OrderBy(it => it.IdArea).GroupBy(it => it.IdArea).ToList();
                foreach (var data in dataGroupByArea)
                {
                    var getArea = data.FirstOrDefault();
                    listArea.Add(getArea);
                }
            }
            return(listArea);
        }
Example #13
0
        public void EditScore([FromBody] ScoreArea scorePartyModel, double newScore)
        {
            var getParty = Table4Collection.Find(it => it.Id == scorePartyModel.Id).FirstOrDefault();

            scorePartyModel.Score = newScore;
            getParty.Score        = scorePartyModel.Score;
            getParty.StatusEdit   = true;
            // Table4Collection.DeleteOne(it => it.Id == getParty.Id);
            // Table4Collection.InsertOne(getParty);
            Table4Collection.ReplaceOne(it => it.IdArea == getParty.IdArea && it.Id == getParty.Id, getParty);
            //set status Area Edit
            var getDataByArea = Table4Collection.Find(it => it.IdArea == getParty.IdArea).ToList();

            foreach (var data in getDataByArea)
            {
                data.StatusAreaEdit = true;
                Table4Collection.ReplaceOne(it => it.IdArea == data.IdArea && it.Id == data.Id, data);
            }
        }
Example #14
0
        public List <ScoreArea> GetAreaWinScoreParty(string idParty)
        {
            var getData      = Table4Collection.Find(it => true).ToList().GroupBy(it => it.IdArea).ToList();
            var listWinParty = new List <ScoreArea>();

            foreach (var data in getData)
            {
                var maxScoreArea = data.Max(it => it.Score);
                foreach (var item in data)
                {
                    if (item.Score == maxScoreArea)
                    {
                        listWinParty.Add(item);
                    }
                }
            }
            var listPartyWin = listWinParty.Where(it => it.IdParty == idParty)
                               .OrderBy(it => it.IdRegion).OrderBy(it => it.IdArea).ToList();

            return(listPartyWin);
        }
Example #15
0
        public void MatchDataWithTable2()
        {
            var readerCsv  = new ReadCsv();
            var getTable2  = readerCsv.MockPrototypeDataTable2();
            var getData    = Table4Collection.Find(it => true).ToList();
            var listTable4 = new List <ScoreArea>();

            foreach (var item in getData)
            {
                var getMatch = getTable2.FirstOrDefault(it => it.IdArea == item.IdArea &&
                                                        it.IdParty == item.IdParty);
                item.NameArea     = getMatch.NameArea;
                item.NameInitial  = getMatch.NameInitial;
                item.NameParty    = getMatch.NameParty;
                item.NameRegister = getMatch.NameRegister;
                item.NoRegister   = getMatch.NoRegister;
                item.Status       = true;
                listTable4.Add(item);
            }
            Table4Collection.DeleteMany(it => true);
            Table4Collection.InsertMany(listTable4);
        }
Example #16
0
        public List <ScoreArea> GetScoreAreasWithArea(string idArea)
        {
            var getData = Table4Collection.Find(it => it.IdArea == idArea.ToUpper()).ToList().OrderByDescending(it => it.Score).ToList();

            return(getData);
        }
Example #17
0
        public List <ScoreArea> GetAreaWithTag(string getTag)
        {
            var getData = Table4Collection.Find(it => it.IdParty == "034" && it.Tags.Any(i => i == getTag)).ToList();

            return(getData);
        }
        public async Task UpdatePartyScore()
        {
            var dataScoreArea   = Table4Collection.Find(it => true).ToList();
            var totalScore      = dataScoreArea.Sum(it => it.Score);
            var totalSS         = 500.0;
            var ratio           = Convert.ToInt32(totalScore / totalSS);
            var listPartyFinal  = new List <PartyList>();
            var dataGroupByArea = dataScoreArea.GroupBy(it => it.IdArea).ToList();
            //get max score
            var listPartyWin = new List <ScoreArea>();

            foreach (var item in dataGroupByArea)
            {
                var maxScore = item.Max(it => it.Score);
                var partyWin = item.FirstOrDefault(it => it.Score == maxScore);
                listPartyWin.Add(partyWin);
            }
            var dataGroupByParty = dataScoreArea.GroupBy(it => it.IdParty).ToList();
            var listParty        = new List <PartyList>();

            foreach (var data in dataGroupByParty)
            {
                var totalScoreParty = data.Sum(it => it.Score);
                var scoreWithArea   = listPartyWin.Count(it => it.IdParty == data.Key);
                listParty.Add(new PartyList
                {
                    Id             = Guid.NewGuid().ToString(),
                    IdParty        = data.Key,
                    PartyName      = data.FirstOrDefault().NameParty,
                    NameInitial    = data.FirstOrDefault().NameInitial,
                    TotalScore     = totalScoreParty,
                    HaveScoreDigit = totalScoreParty / ratio,
                    HaveScore      = Math.Round(totalScoreParty / ratio),
                    AreaScore      = scoreWithArea,
                    NameListScore  = Math.Round(totalScoreParty / ratio) - scoreWithArea,
                    PercentScore   = Math.Round(totalScoreParty / ratio) * 100 / totalSS
                });
            }
            while (listParty.Sum(it => it.HaveScore) < totalSS || listParty.Any(it => it.HaveScore < it.AreaScore))
            {
                if (listParty.Sum(it => it.HaveScore) < totalSS)
                {
                    var diff = totalSS - listParty.Sum(it => it.HaveScore);
                    listParty = listParty.OrderByDescending(it => it.HaveScoreDigit - Math.Floor(it.HaveScoreDigit)).ToList();
                    for (int i = 0; i < diff; i++)
                    {
                        listParty[i].HaveScore++;
                        listParty[i].NameListScore++;
                        listParty[i].PercentScore = listParty[i].HaveScore * 100.0 / 500;
                    }
                }

                if (listParty.Any(it => it.HaveScore < it.AreaScore))
                {
                    var parties = listParty.Where(it => it.HaveScore < it.AreaScore).ToList();

                    foreach (var party in parties)
                    {
                        listParty.Remove(party);
                        party.HaveScoreDigit = party.AreaScore;
                        party.HaveScore      = party.AreaScore;
                        party.NameListScore  = 0;
                        party.PercentScore   = party.HaveScore * 100.0 / 500;
                    }

                    listPartyFinal.AddRange(parties);

                    totalScore = listParty.Sum(it => it.TotalScore);
                    totalSS    = 500 - listPartyFinal.Sum(it => it.HaveScore);
                    ratio      = Convert.ToInt32(totalScore / totalSS);

                    foreach (var party in listParty)
                    {
                        party.HaveScoreDigit = party.TotalScore / ratio;
                        party.HaveScore      = Math.Round(party.HaveScoreDigit);
                        party.NameListScore  = party.HaveScore - party.AreaScore;
                        party.PercentScore   = party.HaveScore * 100.0 / 500;
                    }
                }
            }
            listPartyFinal.AddRange(listParty);
            var finalPartyScores = FinalPartyScoreCollection.Find(it => true).ToList();

            if (finalPartyScores.Any())
            {
                var sortData = listPartyFinal.OrderByDescending(it => it.PercentScore).ToList();
                foreach (var data in sortData)
                {
                    var statusAllies = finalPartyScores.FirstOrDefault(it => it.IdParty == data.IdParty).StatusAllies;
                    data.StatusAllies = statusAllies;
                }
                foreach (var finalPartyScore in finalPartyScores)
                {
                    await FinalPartyScoreCollection.DeleteOneAsync(it => it.Id == finalPartyScore.Id);
                }
                for (int i = 0; i < sortData.Count; i += AtATime)
                {
                    var list = sortData.Skip(i).Take(AtATime);
                    FinalPartyScoreCollection.InsertMany(list);
                    await Task.Delay(Delay);
                }
            }
            else
            {
                var sortData = listPartyFinal.OrderByDescending(it => it.PercentScore).ToList();
                foreach (var data in sortData)
                {
                    data.StatusAllies = "";
                }
                for (int i = 0; i < sortData.Count; i += AtATime)
                {
                    var list = sortData.Skip(i).Take(AtATime);
                    FinalPartyScoreCollection.InsertMany(list);
                    await Task.Delay(Delay);
                }
            }
        }
        public int GetCountOfTable4()
        {
            var count = Table4Collection.Find(it => true).ToList().Count;

            return(count);
        }
Example #20
0
        public List <ScoreArea> GetAllScoreTable4()
        {
            var getData = Table4Collection.Find(it => true).ToList();

            return(getData);
        }
Example #21
0
        public List <ScoreArea> GetAreaWithIdArea(string idArea)
        {
            var getData = Table4Collection.Find(it => it.IdArea == idArea.ToUpper()).ToList();

            return(getData);
        }