public async Task <MyTeam> MakeSub(int sub1, int sub1Position, int sub1ElementType, bool isSub1Captain, bool isSub1ViceCaptain, int sub2, int sub2Position, int sub2ElementType) { HttpClientHandler handler = new HttpClientHandler(); handler = CreateHandler(handler); var response = await _httpClient.GetAuthAsync(handler, $"my-team/{teamId}"); //look for 404 error here response.EnsureSuccessStatusCode(); var content = await response.Content.ReadAsStringAsync(); var myTeamJSON = JObject.Parse(content); MyTeam myTeam = JsonConvert.DeserializeObject <MyTeam>(myTeamJSON.ToString()); //myTeam.picks = await AddPlayerSummaryDataToTeam(myTeam.picks, gameweekId); var payload = new SubPayload(); payload.chip = null; foreach (var pick in myTeam.picks) { var subPick = new SubPick { element = pick.element, element_type = pick.player.element_type, multiplier = pick.multiplier, is_captain = pick.is_captain, is_vice_captain = pick.is_vice_captain }; if (pick.element == sub1) { subPick.position = sub2Position; if (isSub1Captain) { subPick.is_captain = false; } if (isSub1ViceCaptain) { subPick.is_vice_captain = false; } } else if (pick.element == sub2) { subPick.position = sub1Position; if (isSub1Captain) { subPick.is_captain = true; subPick.multiplier = 2; } if (isSub1ViceCaptain) { subPick.is_vice_captain = true; } } else { subPick.position = pick.position; } payload.picks.Add(subPick); } //need to figure out a way to ensure players get put in correct position, currently subs only work if the pick coming on plays in the same position as the pick coming off //var picks = payload.picks.Where(x => x.position < 12).OrderBy(x => x.position).ToList(); var starter = payload.picks.Find(x => x.element == sub1); var sub = payload.picks.Find(x => x.element == sub2); payload.picks = AssignStarterPosition(payload.picks.Where(x => x.multiplier > 0).OrderBy(x => x.position).ToList(), starter, sub); var json = JsonConvert.SerializeObject(payload); handler = ResetHandler(handler); response = await _httpClient.PostAuthAsync(handler, $"my-team/{teamId}/", json); response.EnsureSuccessStatusCode(); content = await response.Content.ReadAsStringAsync(); return(myTeam); }
public async Task <IActionResult> Index() { ViewData["Title"] = "My Team"; var viewModel = new MyTeamViewModel(); HttpClientHandler handler = new HttpClientHandler(); int currentGwId = await GetCurrentGameWeekId(); if (Request.Cookies["teamId"] == null) { teamId = await GetTeamId(); } else { teamId = Convert.ToInt32(Request.Cookies["teamId"]); } var response = await _httpClient.GetAuthAsync(CreateHandler(handler), $"my-team/{teamId}"); if (!response.IsSuccessStatusCode) { return(RedirectToAction("Error", "Home")); } //look for 404 error here response.EnsureSuccessStatusCode(); var content = await response.Content.ReadAsStringAsync(); var myTeamJSON = JObject.Parse(content); MyTeam myTeam = JsonConvert.DeserializeObject <MyTeam>(myTeamJSON.ToString()); //var teamPicksJSON = AllChildren(myTeamJSON) // .First(c => c.Type == JTokenType.Array && c.Path.Contains("picks")) // .Children<JObject>(); //JObject transfersObject = (JObject)myTeamJSON["transfers"]; //TransferInfo transferInfo = transfersObject.ToObject<TransferInfo>(); List <Pick> teamPicks = new List <Pick>(); List <Pick> teamPicksLastWeek = new List <Pick>(); List <Transfer> transfers = new List <Transfer>(); List <PlayerPosition> positions = new List <PlayerPosition>(); //foreach (JObject result in teamPicksJSON) //{ // Pick p = result.ToObject<Pick>(); // teamPicks.Add(p); //} if (currentGwId > 1) { teamPicksLastWeek = await GetLastWeeksTeam(teamPicksLastWeek, teamId, currentGwId); foreach (var p in myTeam.picks) { if (teamPicksLastWeek.FindAll(x => x.element == p.element).Count == 0) { p.IsNewTransfer = true; } } } int gameweekId = currentGwId; var eventStatus = await GetEventStatus(); var lastEvent = eventStatus.status.LastOrDefault(); var isEventFinished = false; if (lastEvent != null) { if (lastEvent.bonus_added && eventStatus.leagues != "Updating") { isEventFinished = true; } } transfers = await GetTeamTransfers(teamId); positions = await GetPlayerPositionInfo(); myTeam.picks = await AddPlayerSummaryDataToTeam(myTeam.picks, gameweekId); myTeam.picks = await AddPlayerGameweekDataToTeam(myTeam.picks, gameweekId); myTeam.picks = await CalculateTotalPointsContributed(myTeam.picks, transfers, gameweekId); myTeam.picks = myTeam.picks.OrderBy(x => x.position).ToList(); FPLTeam teamDetails = await GetTeamInfo(teamId); var entryHistory = await GetEntryHistory(teamId, currentGwId); var completeEntryHistory = new CompleteEntryHistory(); completeEntryHistory = await GetCompleteEntryHistory(completeEntryHistory, teamId); entryHistory = await AddExtraDatatoEntryHistory(entryHistory, completeEntryHistory); entryHistory.BuyingPower = CalculateTeamBuyingPower(myTeam.picks, entryHistory); viewModel.MyTeam = myTeam; viewModel.CurrentGwId = gameweekId; //viewModel.Picks = teamPicks; viewModel.Team = teamDetails; viewModel.Positions = positions; viewModel.TotalPoints = teamDetails.summary_overall_points ?? 0; //viewModel.TransferInfo = transferInfo; viewModel.IsEventFinished = isEventFinished; viewModel.EntryHistory = entryHistory; viewModel.CompleteEntryHistory = completeEntryHistory; viewModel.EventStatus = eventStatus; return(View(viewModel)); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; if (context.Request.Params["action"] == null || context.Request.Params["action"].Trim() == "") { context.Response.Redirect("~/login.aspx"); } HttpRequest request = context.Request; switch (request.Params["action"].ToLower()) { default: context.Response.Redirect("~/login.aspx"); break; case "login": context.Response.Write(com.Utils.login(request.Form["loginname"], request.Form["pwd"], request.Form["language"])); break; //case "getmyteamlist": // context.Response.Write(Dao.DataTableToJSON(MyTeam.GetMyTeamList())); // break; case "gettree": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetMyTeamList(request.Form["UserType"]))); break; case "getdevicesbyuserid": context.Response.Write(Dao.DataTableToJSON(MyTeam.getDevicesList(request.Form["UserID"], request.Form["imei"], request.Form["LowerDevice"]))); break; //case "getdevicesbyserialnumber": // context.Response.Write(Dao.DataTableToJSON(MyTeam.getDeviceBySerialNumber(request.Form["SerialNumber"]))); // break; case "tracking": //实时跟踪 context.Response.Write(Dao.DataTableToJSON(MyTeam.Tracking(request.Form["deviceid"], request.Form["userid"]))); break; case "addgeofences": context.Response.Write(MyTeam.addGeofences(request.Form["pointData"], request.Form["name"], request.Form["userid"], request.Form["deviceid"], request.Form["south_west"], request.Form["north_east"], request.Form["type"])); break; case "getgeofencepolygon": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetPolygonDetail(request.Params["GID"]))); break; case "getdeviceinfo": context.Response.Write(Dao.DataTableToJSON(MyTeam.getDeviceByDeviceID(request.Form["DeviceID"]))); break; case "deletegeofencesbyid": context.Response.Write(MyTeam.DeleteGeofences(request.Form["GeofenceID"])); break; case "getplay": String call = request.Params["callback"]; String callBack = call + "(\"" + MyTeam.getPlayBack(request.Params["deviceid"], request.Params["startDate"], request.Params["endDate"]) + "\")"; context.Response.Write(callBack); break; case "getlushu": context.Response.Write(Dao.DataTableToJSON(MyTeam.getPlayBack(request.Form["deviceid"], request.Form["startDate"], request.Form["endDate"], ""))); break; case "alarmtime": //定时刷新报警信息 context.Response.Write(Dao.DataTableToJSON(MyTeam.alarmTime(request.Form["userid"], request.Form["lower"]))); break; case "alarm": // 报警信息列表 context.Response.Write(com.Dao.DataTableToJSON(MyTeam.getAlarmList(request.Form["userid"], request.Form["lower"], request.Form["status"]))); break; case "allreadonly": context.Response.Write(com.MyTeam.AlarmAllReadonly(request.Form["userid"], request.Form["ExceptionID"])); break; case "remainview": //运行总览 context.Response.Write(Dao.DataTableToJSON(MyTeam.GetRemainView(request.Form["u"], request.Form["st"], request.Form["et"]))); break; case "get_statistics_alarmlist": //统计报表》报警消息 string UserID = request.Form["userid"]; string Model = request.Form["model"]; string MsgType = request.Form["msgtype"]; string StartTime = request.Form["starttime"]; string EndTime = request.Form["endtime"]; context.Response.Write(Dao.DataTableToJSON(com.MyTeam.GetMessageList(UserID, Model, MsgType, StartTime, EndTime))); break; case "getdevices": context.Response.Write(MyTeam.GetDevicesList(request.Form["u"])); break; case "searchuserinfo": context.Response.Write(Dao.DataTableToJSON(MyTeam.SearchUserInfo(request.Form["userid"]))); break; case "savedeviceuserinfo": context.Response.Write(MyTeam.UpdateDeviceUserInfo(request.Form["data"])); break; case "isplay": //历史轨迹 MyTeam.SetIsPlay(request.Form["play"]); context.Response.Write("success"); break; case "isexistfence": context.Response.Write(MyTeam.IsExistFence(request.Form["deviceid"])); break; case "lowermsg": MyTeam.setLowerMsg(request.Form["LowerMsg"]); context.Response.Write("success"); break; //case "getdevicesdetailbydeviceid": // context.Response.Write(Dao.DataTableToJSON(MyTeam.GetDevicesDetailByDeviceID(request.Form["d"]))); // break; case "getmileage": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetMileage(request.Form["yh"], request.Form["dn"], request.Form["st"], request.Form["et"]))); break; case "getspeedreport": //停留列表,查询SpeedReport表的数据 context.Response.Write(Dao.DataTableToJSON(MyTeam.GetSpeedReport(request.Form["st"], request.Form["et"], request.Form["dn"]))); break; case "getspeedreportecharts": // 停留折线图,查询历史轨迹数据,然后算出停留点 #region 停留详单 MyTeam myteam = new MyTeam(); string deviceID = ""; DataTable dt = MyTeam.GetSpeedReport(request.Form["st"], request.Form["et"], request.Form["dn"], ref deviceID, request.Form["filter"], " and Speed >= 10 order by DeviceTime"); if (string.IsNullOrWhiteSpace(request.Form["et"])) // 结束时间为空就是查询停留折线图数据。 { context.Response.Write(Dao.DataTableToJSON(dt)); break; } else { context.Response.Write(Dao.DataTableToJSON(dt)); } #endregion break; case "getstopdetail": //停留详单 context.Response.Write(Dao.ToJson(MyTeam.GetStopDetail(request.Form["userid"], request.Form["deviceid"], request.Form["starttime"], request.Form["endtime"], request.Form["stopday"], request.Form["wireless"], request.Form["laststop"]))); break; case "getexception": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetExceptionAll(request.Form["st"], request.Form["et"], request.Form["dn"]))); break; case "exceptioncount": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetExceptionView(request.Form["st"], request.Form["et"], request.Form["dn"]))); break; case "getexceptiontype": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetExceptionType())); break; case "getexctptiondetail": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetExctptionDetail(request.Form["st"], request.Form["et"], request.Form["t"], request.Form["dn"]))); break; case "getfencesview": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetFencesView(request.Form["st"], request.Form["et"], request.Form["dn"]))); break; case "getcurrentuserdevicesname": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetCurrentUserDeviceName(request.Form["userid"]))); break; case "getuserinfobyuserid": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetUserInfoByUserID(request.Form["UserID"]))); break; case "updateuserinfo": context.Response.Write(MyTeam.UpdateUserInfo(request.Form["data"])); break; case "importexcel": //导出excel //context.Response.Write(MyTeam.ImportExcel(request.Form["type"], request.Form["st"], request.Form["et"], request.Form["dn"], request.Form["emtype"], request.Form["yh"], request.Form["userid"])); context.Response.Write(MyTeam.ImportExcel(context)); break; case "alldevicemodel": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetDeviceModel())); break; case "getuserdeviceinfo": //设备统计 context.Response.Write(MyTeam.GetUserDeviceInfo(request.Params["model"], request.Params["st"], request.Params["et"])); break; case "getonlinedevicelist": //离线设备统计 context.Response.Write(Dao.ToJson(MyTeam.GetOnlineDeviceList(request.Form["userid"], request.Form["starttime"], request.Form["endtime"], request.Form["hour"]))); break; case "getdevicehireexpire": context.Response.Write(MyTeam.GetDeviceHireExpire(request.Params["day"], request.Params["uid"], request.Params["t"], request.Params["current"], request.Params["rowCount"], request.Form["sortBy"] + " " + request.Params["sortDir"], request.Params["searchPhrase"], request.Params["byUser"])); break; case "getofflinedevice": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetOfflineDeviceList(request.Form["uid"], request.Form["model"], request.Form["stime"], request.Form["et"], request.Form["t"], request.Params["current"], request.Params["rowCount"], request.Params[""], request.Params["searchPhrase"]))); break; case "getusersofflinedeviccount": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetUsersOffLineDevicCount())); break; case "newgroup": context.Response.Write(MyTeam.NewGroup(request.Form["groupName"], request.Form["userid"])); break; case "delgroup": context.Response.Write(MyTeam.DelGroup(request.Form["GroupID"])); break; case "updategroup": context.Response.Write(MyTeam.UpdateGroup(request.Form["GroupID"], request.Form["GroupName"])); break; case "updatedevicegroupid": context.Response.Write(MyTeam.UpdateDeviceGroupID(request.Form["toGroupID"], request.Form["SerialNumber"])); break; case "getdeviceinfobyserialnumber": // 根据deviceid获取设备信息 context.Response.Write(Dao.DataTableToJSON(MyTeam.GetDeviceInfoBySerialNumber(request.Form["DeviceID"]))); break; case "upload": //导入excel文件(导入设备,导入SIM卡等) context.Response.Write(MyTeam.UploadFile(context)); break; case "savedeviceinfo": context.Response.Write(MyTeam.UpdateDevicInfo(request.Form["UpdateData"])); break; case "sendcommand": //发送指令 context.Response.Write(MyTeam.SendCommand(request.Form["data"])); break; case "getresponse": //获取发送密令的返回结果 context.Response.Write(MyTeam.GetCommandResponse(request.Form["CommandID"], request.Form["TimeZones"])); break; case "resetpwd": context.Response.Write(MyTeam.ResetDevicePassword(request.Form["deviceid"])); break; case "deletedevice": //删除设备 context.Response.Write(MyTeam.DeleteDevice(request.Form["deviceid"], request.Form["Destroy"])); break; case "recoverydevices": //恢复已删除的设备 context.Response.Write(MyTeam.RecoveryDevices(request.Form["data"], request.Form["isClaerAll"])); break; case "deviceshiftorexpire": if (request.Form["operType"] == "shift") { context.Response.Write(MyTeam.DeviceShiftOrExpire(request.Form["devices"], toUserID: request.Form["toUserID"])); } else { context.Response.Write(MyTeam.DeviceShiftOrExpire(request.Form["devices"], day: request.Form["day"])); } break; case "deleteuser": context.Response.Write(MyTeam.DeleteUsers(request.Form["UserID"])); break; case "adddevice": context.Response.Write(MyTeam.AddDevice(request.Form["data"])); break; case "clearallmessage": context.Response.Write(MyTeam.ClearAllMessage(request.Form["UserID"])); break; case "updatepassword": context.Response.Write(MyTeam.UpdatePassword(request.Form["NewPassword"], request.Form["OldPassword"])); break; case "searchdevices": context.Response.Write(Dao.DataTableToJSON(MyTeam.SearchDevices(request.Form["SearchText"]))); break; case "searchusers": context.Response.Write(Dao.DataTableToJSON(MyTeam.SearchUsers(request.Form["SearchText"]))); break; case "settingmsgtype": context.Response.Write(MyTeam.SettingShowExceptionMsgType(request.Form["MsgID"], request.Form["UserID"])); break; case "getsettingmsgtype": context.Response.Write(MyTeam.GetSettingShowExceptionMsgType(request.Form["UserID"])); break; case "getaddressbylatlng": context.Response.Write(MyTeam.GetAddressByLatlng(request.Form["lat"], request.Form["lng"])); break; case "downloadgooglekml": context.Response.Write(MyTeam.DownloadLocation(request.Form["DeviceID"], request.Form["Date"])); break; case "addusers": context.Response.Write(MyTeam.addUsers(context)); break; case "shiftusers": context.Response.Write(MyTeam.ShiftUsers(request.Form["UserID"], request.Form["toUserID"])); break; case "getcommandlist": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetCommandList(request.Form["DeviceID"]))); break; case "imeibatch": Utils.strImeiBatch = request.Form["Imeis"]; context.Response.Write(""); break; case "getdeleteddevices": context.Response.Write(MyTeam.GetDeletedDevices(request["current"], request["rowCount"], request.Form["sortBy"] + " " + request.Params["sortDir"], request["searchPhrase"])); break; case "renewalsexport": string date = request["date"]; context.Response.Write(MyTeam.GetRenewalsExport(request["userid"], date.Split('~')[0].Trim(), date.Split('~')[1].Trim(), Convert.ToInt32(request["current"]), request["rowcount"], request.Form["sortBy"] + " " + request.Params["sortDir"], request["searchphrase"])); break; case "getgroups": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetGroups(request.Form["uid"]))); break; case "getexceptionmessagecount": context.Response.Write(Dao.DataTableToJSON(MyTeam.GetExceptionMessageCount(request.Form["deviceid"], request.Form["st"], request.Form["et"]))); break; case "adddevicegps": //设备列表上面的添加设备功能(实际上是把这次添加的几台设备快速分到新建的分组里面) context.Response.Write(MyTeam.AddDevicesList(request["carnum"], request["carusername"], request["cellphone"], request["description"], request["devicelist"])); break; case "mgoologin": //江西赣州登录接口 callBack = request.Params["callback"]; string loginname = request.Params["loginname"]; string pwd = request.Params["pwd"]; string language = request.Params["language"]; string reulst = callBack + "('" + com.Utils.mgooLogin(loginname, pwd, language) + "')"; context.Response.Write(reulst); break; } }
public async Task CreateTeam(MyTeam team) { _context.Add(team); await _context.SaveChangesAsync(); }
public AllegianceType GetAllegiance(AgentController otherController) { return(HasTeam && otherController.HasTeam ? MyTeam.GetAllegiance(otherController) : DiplomacyFlags[otherController.ControllerID]); }
public void SyncGame() { string[] inputs; inputs = Console.ReadLine().Split(' '); MyTeam.Update(int.Parse(inputs[0]), int.Parse(inputs[1])); inputs = Console.ReadLine().Split(' '); OpponentTeam.Update(int.Parse(inputs[0]), int.Parse(inputs[1])); SetSnaffleStillExistToFalse(); int nb_entities = int.Parse(Console.ReadLine()); // number of entities still in game for (int i = 0; i < nb_entities; i++) { inputs = Console.ReadLine().Split(' '); int entityId = int.Parse(inputs[0]); string entityType = inputs[1]; // "WIZARD", "OPPONENT_WIZARD" or "SNAFFLE" or "BLUDGER" Vector2 position = new Vector2(int.Parse(inputs[2]), int.Parse(inputs[3])); Vector2 velocity = new Vector2(int.Parse(inputs[4]), int.Parse(inputs[5])); int state = int.Parse(inputs[6]); Entity actualElement = this.Entities.Find(e => e.Id == entityId); switch (entityType) { case "WIZARD": if (actualElement is Wizard e) { e.Update(position, velocity, Convert.ToBoolean(state)); } else { this.Entities.Add( new Wizard(entityId, entityType, position, velocity, Convert.ToBoolean(state))); } break; case "OPPONENT_WIZARD": if (actualElement is Wizard oe) { oe.Update(position, velocity, Convert.ToBoolean(state)); } else { this.Entities.Add( new Wizard(entityId, entityType, position, velocity, Convert.ToBoolean(state))); } break; case "SNAFFLE": if (actualElement is Snaffle s) { s.Update(position, velocity, Convert.ToBoolean(state)); } else { this.Entities.Add( new Snaffle(entityId, entityType, position, velocity, Convert.ToBoolean(state))); } break; case "BLUDGER": if (actualElement is Bludger b) { b.Update(position, velocity, state); } else { this.Entities.Add( new Bludger(entityId, entityType, position, velocity, state)); } break; default: break; } } this.Entities = this.Entities.OrderBy(e => e.Id).ToList(); ComputeAdditionalInfos(); }
public void Move(Car self, World world, Game game, Move move) { TimerStart(); MyStrategy.world = world; Const.Game = game; this.move = move; this.self = self; Initialize(); #if DEBUG while (Visualizer.Pause) { // pause here } Visualizer.CreateForm(world.Cars.Count(x => x.IsTeammate)); #endif if (!self.IsFinishedTrack) { All = null; MyTeam = null; _move(); if (OpponentsCars != null) { var myTeam = new List <ACar[]>(); if (!ComputedPath.ContainsKey(self.Id)) { ComputedPath[self.Id] = new int[MagicConst.OpponentsTicksPrediction].Select(x => new ACar(self)).ToArray(); } myTeam.Add(ComputedPath[self.Id]); if (TeammateCar != null) { myTeam.Add(TeammateCar); } MyTeam = myTeam.ToArray(); All = MyTeam.Concat(OpponentsCars).ToArray(); TimerStart(); if (CheckUseProjectile()) { move.IsThrowProjectile = true; } if (CheckUseOil()) { move.IsSpillOil = true; } TimerEndLog("CheckUseProjectile", 2); } } else if (_finishTime == Infinity) { _finishTime = world.Tick; } if (_finishTime < Infinity) { Log(_finishTime); } #if DEBUG if (move.IsBrake) { Visualizer.CircleFillQueue.Add(new Tuple <Brush, ACircularUnit>(Brushes.Red, new ACircularUnit { X = self.X, Y = self.Y, Radius = 30 })); } TimerEndLog("All"); if (Brutes != null) { for (var i = 0; i < Brutes.Length; i++) { var info = Brutes[i].GetMaxTicksInfo(); if (info == null) { continue; } Console.Write(i + ": "); foreach (var a in info) { Console.Write(" " + a); } Console.WriteLine("(" + Brutes[i].SelectedCount + ")"); } } Console.WriteLine(); Visualizer.Draw(); Thread.Sleep(12); #endif }