//Created a new instance of a drone object private static Drone CreateDrone(DAL.Domain.Drone drone) { var navigationPoints = NavigationLogic.UnitOfWork.NavigationPoints.GetNaviationPoints().ToList(); var currentPoint = NavigationLogic.UnitOfWork.NavigationPoints.GetRandom(drone.TargetPoint.Id); var returnedDrone = new Drone { Id = drone.Id, Name = drone.Name, Scale = new Scale { Id = drone.Scale.Id, XPosition = drone.Scale.XSize, YPosition = drone.Scale.YSize, ZPosition = drone.Scale.ZSize }, TargetPoint = new NavigationPoint(drone.TargetPoint), CurrentPoint = new NavigationPoint(currentPoint), Speed = 2f }; File.AppendAllText( @"C:\Users\Jack\Documents\Fourth Year\Fourth Year Project\2017-ca400-murpj238\docs\blog\RandomNavigationPoints.csv", "Create Drone Method," + returnedDrone.TargetPoint.Id + "," + returnedDrone.TargetPoint.XPosition + "," + returnedDrone.TargetPoint.ZPosition + "," + returnedDrone.CurrentPoint.Id + "," + returnedDrone.CurrentPoint.XPosition + "," + returnedDrone.CurrentPoint.ZPosition + "\n"); navigationPoints = navigationPoints.Where(x => x.Id != returnedDrone.TargetPoint.Id).ToList(); returnedDrone.Route = NavigationLogic.GenerateRoute(returnedDrone, new List <NavigationPoint> { returnedDrone.CurrentPoint, returnedDrone.TargetPoint }, navigationPoints, 0); return(returnedDrone); }
public static void UpdateStatistics(Statistic statistic, NavigationPoint navPoint = null) { statistic.CollisionLocation = null; try { if (navPoint != null) { var point = NavigationLogic.UnitOfWork.NavigationPoints.GetCollisionPoints() .FirstOrDefault(x => Math.Round(x.XPosition, 2).Equals(Math.Round(navPoint.XPosition, 2)) && Math.Round(x.ZPosition, 2).Equals(Math.Round(navPoint.ZPosition, 2))); if (point == null) { var streets = NavigationLogic.FindStreets(navPoint.XPosition, navPoint.ZPosition).ToList(); var collisionPoint = new NavigationPoints { Id = Guid.NewGuid(), IsCollisionPoint = true, XPosition = navPoint.XPosition, YPosition = navPoint.YPosition, ZPosition = navPoint.ZPosition, XNeighbourId = Guid.Empty, ZNeighbourId = Guid.Empty }; collisionPoint.Street.Add(streets.First()); collisionPoint.Street.Add(streets.Last()); statistic.CollisionLocation = collisionPoint; } else { statistic.CollisionLocation = point; } } NavigationLogic.UnitOfWork.Statistics.Add(CreateStatistic(statistic)); NavigationLogic.UnitOfWork.Complete(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } }