public ActionResult CheckStatus(MovingObjectViewModel movingObject) { try { MovingObjectViewModel _movingObject = movingObjectService.CheckStatus(movingObject); return Json(new { _movingObject }); } catch (Exception ex) { return Json(new { status = "error", message = ex.ToString() }); } }
public MovingObject(MovingObjectViewModel viewModel) { this.Fingerprint = viewModel.Fingerprint; this.Position = viewModel.Latitude * viewModel.Longitude; this.Latitude = viewModel.Latitude; this.Longitude = viewModel.Longitude; this.Speed = viewModel.Speed; this.Heading = viewModel.Heading; this.ModeOfTransportation = viewModel.ModeOfTransportation; this.BoundingBox = new BoundingBox(this.Latitude, this.Longitude, this.Heading, this.Speed, this.ModeOfTransportation); this.Status = "green"; this.LastPost = DateTime.Now; }
public MovingObjectViewModel CheckStatus(MovingObjectViewModel movingObjectViewModel) { if (movingObjectList == null) movingObjectList = new List<MovingObject>(); if (thisLock == null) thisLock = new Object(); if (movingObjectViewModel.Fingerprint != 0 && movingObjectViewModel.Latitude != 0 && movingObjectViewModel.Longitude != 0) { lock (thisLock) { movingObject = new MovingObject(movingObjectViewModel); movingObjectList.RemoveAll(e => (e.Fingerprint == movingObject.Fingerprint || e.Fingerprint == 0 || e.LastPost < DateTime.Now.AddSeconds(-10))); movingObjectList.Add(movingObject); SortMovingObjectList(); movingObjectViewModel.OtherMovingObjects = GetMovingObjectNearPosition(movingObject.Position, movingObject.Fingerprint); movingObjectViewModel.MovingObject = movingObject; } DetermineCollisions(movingObject, movingObjectViewModel.OtherMovingObjects); } //movingObjectViewModel.BoundingBox = movingObject.BoundingBox; return movingObjectViewModel; }