private static void CheckActionTime(object state) { var biz = new BizRankCollectorSettings(); var setting = biz.GetSettings(); var actionWeek = setting.ActionWeek ?? string.Empty; var actionTime = setting.ActionTime; if (string.IsNullOrEmpty(actionTime)) { return; } var Weeks = actionWeek.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries); if (Weeks == null || Weeks.Count() <= 0) { return; } var nowWeek = DateTime.Now.ToString("ddd"); int fromHour = DateTime.Now.Hour; int toHour = DateTime.Now.AddHours(1).Hour; int actionHour = int.Parse(actionTime); foreach (var week in Weeks) { if (week == nowWeek) { if (fromHour < actionHour && toHour > actionHour) { GoRankCollector(setting.EndPageNum); } break; } } }
public JsonModel CheckVersion(JsonModel jsonModel) { if (jsonModel == null) { return(null); } if (jsonModel.BjModel == null) { return(null); } if (string.IsNullOrEmpty(jsonModel.BjModel.LoginID)) { return(null); } var settingBiz = new BizRankCollectorSettings(); var setting = settingBiz.GetSettings(); var loginIdArray = jsonModel.BjModel.LoginID.Split(new string[] { setting.AbjIDSplitString }, StringSplitOptions.RemoveEmptyEntries); if (loginIdArray.Length == 1) { jsonModel.BjModel.LoginID2 = loginIdArray[0]; jsonModel.BjModel.ChatID = loginIdArray[0]; } else if (loginIdArray.Length == 2) { jsonModel.BjModel.LoginID2 = loginIdArray[1]; jsonModel.BjModel.ChatID = loginIdArray[0]; } var g5Biz = new BizG5_member(); var result = g5Biz.GetG5_memberModelsByAbjID(jsonModel.BjModel.LoginID2); if (result != null && result.Count > 0) { var member = result.FirstOrDefault(); var level = member.mb_level; var date = member.mb_3; DateTime.TryParse(date, out DateTime expireDate); var days = (DateTime.Now - expireDate).Days; if (level < 9 && loginIdArray.Length == 2) { jsonModel.BjModel.CertificationFlag = false; jsonModel.BjModel.CertificationMessage = "잘못된 접근입니다."; } else if (level >= 4) { jsonModel.BjModel.CertificationFlag = true; } else if (level < 4) { jsonModel.BjModel.CertificationFlag = false; jsonModel.BjModel.CertificationMessage = "사용기간이 만료되어 프로그램이 종료 됩니다."; } if (string.IsNullOrEmpty(date) || days > 0) { // 만료 jsonModel.BjModel.ExpireFlag = true; jsonModel.BjModel.ExpireMessage = "사용기간이 만료되어 프로그램이 종료 됩니다."; } else if (!string.IsNullOrEmpty(setting.ClientVersion) && setting.ClientVersion != jsonModel.BjModel.ClientVersion) { jsonModel.BjModel.IsNewUpload = true; jsonModel.BjModel.VersionMessage = "새 버전이 업로드 되었습니다. \r\n사이트에서 새 버전을 다운받아주세요."; } jsonModel.BjModel.ExpireDate = expireDate; jsonModel.BjModel.ClientLevel = member.mb_level; } else { jsonModel.BjModel.CertificationFlag = false; jsonModel.BjModel.CertificationMessage = "승인되지 않은 아이디 입니다."; return(jsonModel); } return(jsonModel); }
private static void GoRankCollector(int pEndPage) { // 1. BJ 수집 int endPage = pEndPage; var categoryRankParser = new CategoryRankParser(); var resultBjModels = new List <RankBjModel>(); foreach (RankingType rankingType in Enum.GetValues(typeof(RankingType))) { for (int i = 1; i <= endPage; i++) { var bjModels = categoryRankParser.GetData(rankingType, i); if (resultBjModels.Count <= 0) { resultBjModels.AddRange(bjModels); continue; } foreach (var bj in bjModels) { //기존 BJ 없다면 새로 추가 if (!resultBjModels.Any(b => b.BjID == bj.BjID)) { resultBjModels.Add(bj); continue; } // 기존 BJ 있으면 기존 BJ에 담고 해당 랭크만 채우기 foreach (var resultBjModel in resultBjModels) { if (resultBjModel.BjID != bj.BjID) { continue; } categoryRankParser.SetTargetRank(bj, resultBjModel, rankingType); } } } } // 2. 사용자 수집 var bjPagePaser = new BjPagePaser(); var resultUserModel = new List <RankUserModel>(); var resultBjInfo = new List <BjInfoModel>(); // BJ 수집 리스트 루프 돌기 foreach (var BjModel in resultBjModels) { // BJ 정보 var BjInfo = bjPagePaser.GetBjInfo(BjModel); resultBjInfo.AddRange(BjInfo); // 열혈팬 Top20 var bigFans = bjPagePaser.GetBigFans(BjModel.BjID); resultUserModel.AddRange(bigFans); // 서포터 Top20 var supporters = bjPagePaser.GetSupporters(BjModel.BjID); resultUserModel.AddRange(supporters); } ; var bizSettings = new BizRankCollectorSettings(); var Settings = bizSettings.GetSettings(); var bizBjRank = new BizBjRank(Settings); bizBjRank.SetInitBjValues(); bizBjRank.SetBjModels(resultBjModels); foreach (var userModel in resultUserModel) { var bjModel = resultBjModels.Find(b => b.BjID == userModel.BjID); userModel.BjNic = bjModel.BjNick; } var bizUserRank = new BizUserRank(Settings); bizUserRank.SetInitUserValues(); bizUserRank.SetUserModels(resultUserModel); bizUserRank.SetInitBjInfoValues(); bizUserRank.SetBjInfoModels(resultBjInfo); bizSettings.SetAferSettings(); ; var jsonModel = new JsonModel() { Text = "rfsStart" }; var webApiCaller = new WebApiCaller(); var result = webApiCaller.RefreshAsync(jsonModel).ConfigureAwait(true); }