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); }
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); }
// 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; } }
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); } }
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); } }
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); }
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); } }
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); }
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); } }
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); }
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); }
public List <ScoreArea> GetScoreAreasWithArea(string idArea) { var getData = Table4Collection.Find(it => it.IdArea == idArea.ToUpper()).ToList().OrderByDescending(it => it.Score).ToList(); return(getData); }
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); }
public List <ScoreArea> GetAllScoreTable4() { var getData = Table4Collection.Find(it => true).ToList(); return(getData); }
public List <ScoreArea> GetAreaWithIdArea(string idArea) { var getData = Table4Collection.Find(it => it.IdArea == idArea.ToUpper()).ToList(); return(getData); }