public async Task <IActionResult> Update([FromBody] StatusUpdateModel model) { var user = await _userManager.GetUserAsync(HttpContext.User); _infoStore.StatusModels[user.Id] = model; return(Ok()); }
private void PivotTowardPosition(StatusUpdateModel model) { var angle = CommonTools.CalculateAngle(model.ShipStatus.XPos, _position.X, model.ShipStatus.YPos, _position.Y); _angle = angle; _actions.Accelerate(_angle, 1); }
public Optional <IActionEngine> ReceiveStatus(StatusUpdateModel model) { if (_start.AddSeconds(3) > DateTime.Now) { return(Optional <IActionEngine> .FromNull()); } var notOwnedMines = model.GoldMines.Where(s => s.Owner != _owner); if (CommonTools.CalHypo(model.ShipStatus.XPos, _position.X, model.ShipStatus.YPos, _position.Y) < 300) { var randomEng = new RandomExplorerEngine(_actions, _scanner, _owner); return(Optional <IActionEngine> .From(randomEng)); } if (notOwnedMines.Count() > 0) { return(Optional.From <IActionEngine>(new ApproacherEngine(notOwnedMines.First(), this, _actions, _owner))); } else { PivotTowardPosition(model); MakeScans(); return(Optional <IActionEngine> .FromNull()); } }
public void Run(StatusUpdateModel model) { _start = DateTime.Now; var angle = CommonTools.CalculateAngle(model.ShipStatus.XPos, _position.X, model.ShipStatus.YPos, _position.Y); _angle = angle; PivotTowardPosition(model); }
public string UpdateStatus([FromBody] StatusUpdateModel statusUpdateModel) { var userName = User.Identity.Name; var userId = _UserService.GetUserIdByName(userName); var isUpdated = _contactService.UpdateStatus(statusUpdateModel.Id, statusUpdateModel.Status, userId); return(isUpdated ? "Status updated successfully" : "Unable to update status"); }
private void SendLongRangeApproacher(StatusUpdateModel model) { if (CommonTools.GetRandom(100) < 10 && _currentEngine is RandomExplorerEngine) { var location = Data.Mines.ToList()[CommonTools.GetRandom(Data.Mines.Count)]; var longRangeEngine = new LongRangeApproacherEngine(location.Value, _currentEngine, _actions, _user); _currentEngine = longRangeEngine; longRangeEngine.Run(model); } }
public IActionResult StatusUpdate([FromQuery] int projectId) { List <StatusUpdateOption> statusUpdateOptions = statusUpdateService.GetStatusUpdates(projectId); StatusUpdateModel transactionModel = new StatusUpdateModel() { StatusUpdateOptions = statusUpdateOptions }; return(View(transactionModel)); }
public async Task ReportStatus(StatusUpdateModel model) { await EnsureAuthentication(); var payload = JsonSerializer.Serialize(model); var content = new StringContent(payload, Encoding.UTF8, Json); var response = await _client.PostAsync("/agent/status/update", content); response.EnsureSuccessStatusCode(); }
private void CheckIfOtherMines(StatusUpdateModel model) { if (_next != null) { return; } var targets = model.GoldMines.Where(s => s.Owner != _owner && s != _position); if (targets.Count() > 0) { _next = targets.First(); } }
private void RollAgain(StatusUpdateModel model) { if (_lastDecisionTime.AddSeconds(15) < DateTime.Now) { MakeDecision(); } else { var lastRollRad = CommonTools.RadToDeg(_lastRoll); lastRollRad += CommonTools.GetRandom(21) - 10; _lastRoll = CommonTools.DegToRad(lastRollRad); _actions.Accelerate(_lastRoll, 1); } }
async System.Threading.Tasks.Task RejectCommand(StatusUpdateModel s) { result = await APIServices.UpdateStatus(s, Constants.updateUserStatusEndpoint); if (result) { await Application.Current.MainPage.DisplayAlert("Success", "User Rejected", "ok"); await Application.Current.MainPage.Navigation.PushAsync(new UsersView(2, "Pending User")); } else { await Application.Current.MainPage.DisplayAlert("Error", "Please try again", "ok"); } }
public Optional <IActionEngine> ReceiveStatus(StatusUpdateModel model) { _lastPosition = model.ShipStatus; if (_attemptStart.AddSeconds(30) < DateTime.Now) { return(Optional.From(_prevEngine)); } var location = model.GoldMines.Where(s => s.X == _position.X && s.Y == _position.Y).FirstOrDefault(); if (_position.Owner == _owner) { return(Optional.From(_prevEngine)); } if (_lastPosition.XVelocity < 0.01 && _lastPosition.YVelocity < 0.01 && _status == ApproachStatus.BREAKING) { _status = ApproachStatus.APPROACHING; var angle = CalculateAngle(); var distance = CalculateDistance(); _distanceAwayFromBreak = distance; _client.Accelerate(angle, 1); } else if (_status == ApproachStatus.APPROACHING) { var currDistnace = CalculateDistance(); if (currDistnace < 100) { _client.Break(); _status = ApproachStatus.HOMING; } } else if (_status == ApproachStatus.HOMING) { if (location.Owner == _owner) { //we caught it, time to move on return(Optional.From(_prevEngine)); } } else { //still break _client.Break(); } return(Optional <IActionEngine> .FromNull()); }
public StatusUpdateModel Scan(double x, double y) { if (!CanScan()) { return(StatusUpdateModel.MakeUnAvailableModel()); } var model = _actions.Scan(x, y); if (!model.Available) { return(StatusUpdateModel.MakeUnAvailableModel()); } Data.LastScan = DateTime.Now; Data.LastScanResults = model; AddUniqueMines(model.GoldMines); return(model); }
public StatusUpdateModel GetStatus() { var request = CreateRequestFromAction("STATUS"); var response = ExecuteRequestAndGetResponse(request); if (response.Contains("limit")) { return(StatusUpdateModel.MakeUnAvailableModel()); } try { var parser = new StatusParser(response); var model = parser.GetModel(); return(model); } catch (Exception e) { return(StatusUpdateModel.MakeUnAvailableModel()); } }
public Optional <IActionEngine> ReceiveStatus(StatusUpdateModel model) { if (_start.AddSeconds(3) > DateTime.Now) { return(Optional <IActionEngine> .FromNull()); } var notOwnedMines = model.GoldMines.Where(s => s.Owner != _owner); if (notOwnedMines.Count() > 0) { return(Optional.From <IActionEngine>(new ApproacherEngine(notOwnedMines.First(), this, _actions, _owner))); } else { RollAgain(model); MakeScans(); return(Optional <IActionEngine> .FromNull()); } }
public async Task <JobResult> RunJob() { var rng = new Random(); var status = new StatusUpdateModel { Hostname = Environment.MachineName, IpAddress = GetLocalIpAddress(), CpuUsage = rng.Next(101), MaximumRam = 8192, CurrentRam = rng.Next(8193) }; await _server.ReportStatus(status); _logger.LogInformation($"Status update ran at: {DateTime.Now:g}"); RunNext = DateTime.Now.AddSeconds(5); return(JobResult.Success); }
public StatusUpdateModel Scan(double x, double y) { var request = CreateRequestFromAction($"SCAN {x} {y}"); var response = ExecuteRequestAndGetResponse(request); if (response.Contains("ERROR")) { return(StatusUpdateModel.MakeUnAvailableModel()); } else { try { var parser = new StatusParser(response); var model = parser.GetModel(); return(model); } catch (Exception ex) { return(StatusUpdateModel.MakeUnAvailableModel()); } } }
public static async Task <bool> UpdateStatus( StatusUpdateModel s, string uri) { var client = new HttpClient(); var responseModel = new loginModel(); /*var model = new StatusUpdateModel * { * Id = id, * Status = status * * };*/ var json = JsonConvert.SerializeObject(s); HttpContent httpContent = new StringContent(json); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = await client.PostAsync( uri, httpContent); if (response.IsSuccessStatusCode) { /*string content = await response.Content.ReadAsStringAsync(); * responseModel = JsonConvert.DeserializeObject<loginModel>(content); * Application.Current.Properties["id"] = responseModel.Id; * Application.Current.Properties["name"] = responseModel.Email; * Application.Current.Properties["password"] = responseModel.Password;*/ /* Console.WriteLine(Application.Current.Properties["id"]);*/ return(true); } return(false); }
private void SendDirEngine(StatusUpdateModel model) { if (!model.Available) { return; } if (_currentEngine is RandomExplorerEngine && Data.Mines.Count > 8 && CommonTools.GetRandom(100) < Data.Mines.Count * 3) { var closestDistance = Data.Mines.Values.Where(s => s.Owner != _user) .Select(s => CommonTools.CalHypo(model.ShipStatus.XPos, s.X, model.ShipStatus.YPos, s.Y)).Distinct().OrderBy(s => s).Where(s => s < 2000).ToList(); if (closestDistance.Count == 0) { if (CommonTools.GetRandom(100) < 30) { closestDistance = Data.Mines.Values.Where(s => s.Owner != _user) .Select(s => CommonTools.CalHypo(model.ShipStatus.XPos, s.X, model.ShipStatus.YPos, s.Y)).Distinct().OrderBy(s => s).Where(s => s < 4000).ToList(); } else { return; } } var closestList = Data.Mines.Where(s => closestDistance.Contains(CommonTools.CalHypo(model.ShipStatus.XPos, s.Value.X, model.ShipStatus.YPos, s.Value.Y))).Distinct().ToList(); var closest = closestList[CommonTools.GetRandom(closestList.Count)]; var distance = CommonTools.CalHypo(model.ShipStatus.XPos, closest.Value.X, model.ShipStatus.YPos, closest.Value.Y); var dirEngine = new InfluencedDirEngine(_actions, this, _user, closest.Value); _currentEngine = dirEngine; Data.TargetDirection = closest.Value; dirEngine.Run(model); } }
private void SetStatus(StatusUpdateModel status) { Data.ShipStatus = status.ShipStatus; }
public void Run(StatusUpdateModel model) { MakeDecision(); _start = DateTime.Now; }
public void Run(StatusUpdateModel model) { _client.Break(); }
public Optional <IActionEngine> ReceiveStatus(StatusUpdateModel model) { CheckIfOtherMines(model); _lastPosition = model.ShipStatus; if (_attemptStart.AddSeconds(10) < DateTime.Now) { return(Optional.From(_prevEngine)); } var location = model.GoldMines.Where(s => s.X == _position.X && s.Y == _position.Y).FirstOrDefault(); if (location != null && location.Owner == _owner) { return(Optional.From(_prevEngine)); } if (Math.Abs(_lastPosition.XVelocity) < 0.05 && Math.Abs(_lastPosition.YVelocity) < 0.05 && _status == ApproachStatus.BREAKING) { _status = ApproachStatus.APPROACHING; var angle = CalculateAngle(); _angle = angle; var distance = CalculateDistance(); _distanceAwayFromBreak = distance; _client.Accelerate(angle, 0.7); } else if (_status == ApproachStatus.APPROACHING) { _client.Accelerate(_angle, 0.7); var currDistnace = CalculateDistance(); if (currDistnace < 0.35 * _distanceAwayFromBreak) { _client.Break(); _status = ApproachStatus.HOMING; } } else if (_status == ApproachStatus.HOMING) { if (location == null) { _client.Break(); _status = ApproachStatus.APPROACHING; } if (location != null && location.Owner == _owner) { //we caught it, time to move on if (_next != null) { var newApproacher = new ApproacherEngine(_next, _prevEngine, _client, _owner); return(Optional <IActionEngine> .From(newApproacher)); } else { return(Optional.From(_prevEngine)); } } else { _status = ApproachStatus.APPROACHING; var angle = CalculateAngle(); var distance = CalculateDistance(); _distanceAwayFromBreak = distance; _client.Accelerate(angle, 0.7); } } else { //still break _client.Break(); } return(Optional <IActionEngine> .FromNull()); }
public IActionResult UpdateStatus(IFormCollection form, [FromServices] IEmailSender emailSender, [FromServices] IConfiguration configuration) { StatusUpdateModel details = JsonConvert.DeserializeObject <StatusUpdateModel>(form["aboutInfo"]); try { var transaction = transactionService.GetTransaction(details.ID); var link = transactionLinkService.GetTransactionLinks().Where(s => s.TransactionID == transaction.Id).FirstOrDefault(); transaction.Status = details.Status.Value; link.Status = details.Status.Value; transactionService.UpdateTransaction(transaction); transactionLinkService.UpdateTransactionLink(link); if (transaction.Status == 3) { var linkas = Url.Action("TransactionView", "MyTransaction", new { code = link.LinkCode }, Request.Scheme, Request.Host.ToString()); string coded = link.LinkCode.ToString(); var title = "Pay Guardex: Product has been shipped."; var mailbody = "<html>" + "<head>" + "<link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css\" integrity=\"sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk\" crossorigin=\"anonymous\">" + "</head>" + "<body>" + "<div class=\"container\">" + "<div class=\"row\">" + "<div class=\"col-md-12\" style=\"padding:30px;background-color:#d8e9ff\">" + "<h3 style=\"color:forestgreen\">Product has been Shipped</h3>" + "<div>" + "<p>Seller shipped the product. When buyer recieved the product will update the status using the link </p>" + "</div>" + "<div>" + "<p>Please visit the link or click the button to view the transaction.</p>" + "<p>" + linkas + "</p>" + "</div>" + "<div style=\"text-align:center\">" + "<a href=" + linkas + " class=\"btn btn-success\"> Manage Transaction </a>" + "</div>" + "</div>" + "</div>" + "</div>" + "</ body >" + "</html>"; emailSender.Post( subject: title, body: mailbody, recipients: transaction.BuyerEmail, sender: configuration["AdminContact"]); emailSender.Post( subject: title, body: mailbody, recipients: transaction.SellerEmail, sender: configuration["AdminContact"]); } return(Json(new { success = true })); } catch (Exception ex) { return(Json(new { success = false })); } }