/// <summary> /// BJ 매칭 /// </summary> /// <param name="bj"></param> /// <param name="user"></param> /// <param name="serverBjs"></param> /// <returns></returns> private UserModel BjUserMatching(BjModel bj, UserModel user, List <RankBjModel> serverBjs) { try { var resultBj = new RankBjModel(); for (int Idx = 0; Idx < serverBjs.Count(); Idx++) { if (serverBjs[Idx].BjID == user.ID) { resultBj = serverBjs[Idx]; break; } } if (resultBj == null && string.IsNullOrEmpty(resultBj.BjID)) { return(null); } user.Type = UserType.BJ; user.PictureUrl = resultBj.BjImgUrl; user.RankingInfo = resultBj; user.BjInfo = resultBj.Bjinfo; return(user); } catch (Exception e) { string log = e.Message; return(null); } }
private JsonModel ActionType2(BjModel bj, List <UserModel> users) { var result = new JsonModel { UserModels = new List <UserModel>() }; Parallel.For(0, 2, (i) => { switch (i) { case 0: var serverBjs = (from sBj in RankBjDataCache.Instance.GetRankBjModels join cBj in users on sBj.BjID equals cBj.ID select sBj)?.ToList(); var clientBjs = (from sBj in RankBjDataCache.Instance.GetRankBjModels join cBj in users on sBj.BjID equals cBj.ID select cBj)?.Distinct().ToList(); if (serverBjs != null && serverBjs.Count > 0) { Parallel.For(0, clientBjs.Count, (Idx) => { var tmp = BjUserMatching(bj, clientBjs[Idx], serverBjs); if (tmp != null) { result.UserModels.Add(tmp); } }); } break; case 1: var serverUsers = (from sUsers in RankUserModelDataCache.Instance.GetRankUserModels join cUsers in users on sUsers.UserID equals cUsers.ID select sUsers).ToList(); var clientUsers = (from sUsers in RankUserModelDataCache.Instance.GetRankUserModels join cUsers in users on sUsers.UserID equals cUsers.ID select cUsers)?.Distinct()?.ToList(); if (serverUsers != null && serverUsers.Count > 0) { var tmp = BigFanUserMatching(bj, clientUsers, serverUsers); if (tmp != null) { result.UserModels.AddRange(tmp); } } break; } }); return(result); }
private async void CallCheckVersionWebApi() { var version = new JsonModel { BjModel = Bj }; var returnMessage = await webApiCaller.CheckVersionAsync(version).ConfigureAwait(true); if (returnMessage == null || returnMessage.BjModel == null) { ShowMessageBox("인증이 실패 되어 프로그램이 종료 됩니다.", "인증 실패", MessageBoxButtons.OK, MessageBoxIcon.Stop, true); return; } if (!returnMessage.BjModel.CertificationFlag) { ShowMessageBox(returnMessage.BjModel.CertificationMessage, "인증 실패", MessageBoxButtons.OK, MessageBoxIcon.Stop, true); return; } if (returnMessage.BjModel.ExpireFlag) { // 만료 결제를 하여주십시오. ShowMessageBox(returnMessage.BjModel.ExpireMessage, "사용기간 만료", MessageBoxButtons.OK, MessageBoxIcon.Stop, true); return; } if (returnMessage.BjModel.IsNewUpload) { ShowMessageBox(returnMessage.BjModel.VersionMessage, "버전 확인", MessageBoxButtons.OK, MessageBoxIcon.Information); } IsCert = true; Bj = returnMessage.BjModel; }
/// <summary> /// 빅팬 매칭 /// </summary> /// <param name="bj"></param> /// <param name="clientUsers"></param> /// <param name="serverUsers"></param> /// <returns></returns> private List <UserModel> BigFanUserMatching(BjModel bj, List <UserModel> clientUsers, List <RankUserModel> serverUsers) { Parallel.For(0, clientUsers.Count, (clientUserIdx) => { if (clientUsers[clientUserIdx].BJs == null) { clientUsers[clientUserIdx].BJs = new List <BjModel>(); } var matchingUser = new List <RankUserModel>(); for (int Idx = 0; Idx < serverUsers.Count(); Idx++) { if (serverUsers[Idx].UserID == clientUsers[clientUserIdx].ID) { matchingUser.Add(serverUsers[Idx]); } } int mainBigFanRanking = matchingUser?.OrderBy(m => m.BigFanRanking)?.FirstOrDefault()?.BigFanRanking ?? -1; if (mainBigFanRanking == 1) { // 1등 회장 clientUsers[clientUserIdx].Type = UserType.King; } else if (mainBigFanRanking >= 2 && mainBigFanRanking <= 5) { // 2~5등 clientUsers[clientUserIdx].Type = UserType.BigFan; } else if (mainBigFanRanking >= 6 && mainBigFanRanking <= 10) { // 6~10등 clientUsers[clientUserIdx].Type = UserType.BigFan; } else if (mainBigFanRanking >= 11 && mainBigFanRanking <= 20) { // 11~20등 clientUsers[clientUserIdx].Type = UserType.BigFan; } Parallel.For(0, matchingUser.Count, (matchingUserIdx) => { var Addbj = new BjModel() { ID = matchingUser[matchingUserIdx].BjID, Nic = matchingUser[matchingUserIdx].BjNic, }; int bigFanRanking = matchingUser[matchingUserIdx].BigFanRanking; if (bigFanRanking == 1) { // 1등 회장 Addbj.IconUrl = IconUrl.BulKing; } else if (bigFanRanking >= 2 && bigFanRanking <= 5) { // 2~5등 Addbj.IconUrl = IconUrl.BulRedHeart; } else if (bigFanRanking >= 6 && bigFanRanking <= 10) { // 6~10등 Addbj.IconUrl = IconUrl.BulYellowHeart; } else if (bigFanRanking >= 11 && bigFanRanking <= 20) { // 11~20등 Addbj.IconUrl = IconUrl.BulGrayHeart; } Addbj.Ranking = bigFanRanking; clientUsers[clientUserIdx].BJs.Add(Addbj); }); }); return(clientUsers); }
private UserModel RankUserModelToUserModel(RankUserModel rankUser, List <RankUserModel> allUserModels) { var userModel = new UserModel() { ID = rankUser.UserID, Nic = rankUser.UserNick, }; //var biz = new BizUserRank(); //var matchingUser = biz.GetAllRankUserModelsByUserID(rankUser.UserID); var matchingUser = allUserModels.FindAll(a => a.UserID == rankUser.UserID); int mainBigFanRanking = matchingUser?.OrderBy(m => m.BigFanRanking)?.FirstOrDefault()?.BigFanRanking ?? -1; if (mainBigFanRanking == 1) { // 1등 회장 userModel.Type = UserType.King; } else if (mainBigFanRanking >= 2 && mainBigFanRanking <= 5) { // 2~5등 userModel.Type = UserType.BigFan; } else if (mainBigFanRanking >= 6 && mainBigFanRanking <= 10) { // 6~10등 userModel.Type = UserType.BigFan; } else if (mainBigFanRanking >= 11 && mainBigFanRanking <= 20) { // 11~20등 userModel.Type = UserType.BigFan; } // 몇건 ~ 십몇건 for (int Idx = 0; Idx < matchingUser.Count; Idx++) { var Addbj = new BjModel() { ID = matchingUser[Idx].BjID, Nic = matchingUser[Idx].BjNic, }; int bigFanRanking = matchingUser[Idx].BigFanRanking; if (bigFanRanking == 1) { // 1등 회장 Addbj.IconUrl = IconUrl.BulKing; } else if (bigFanRanking >= 2 && bigFanRanking <= 5) { // 2~5등 Addbj.IconUrl = IconUrl.BulRedHeart; } else if (bigFanRanking >= 6 && bigFanRanking <= 10) { // 6~10등 Addbj.IconUrl = IconUrl.BulYellowHeart; } else if (bigFanRanking >= 11 && bigFanRanking <= 20) { // 11~20등 Addbj.IconUrl = IconUrl.BulGrayHeart; } Addbj.Ranking = bigFanRanking; userModel.BJs.Add(Addbj); } return(userModel); }