//Creates a domain object from the data contract object public static DAL.Domain.Statistic CreateStatistic(Statistic statistic) { return(new DAL.Domain.Statistic { DroneCount = statistic.DroneCount, AverageDroneSpeed = statistic.AverageDroneSpeed, AverageDistanceTravelled = statistic.AverageDistanceTravelled, CurrentTimeInRun = statistic.CurrentTimeInRun, StartRunTime = statistic.StartRunTime, RunTimeSeconds = statistic.RunTimeSeconds, CollisionLocation = statistic.CollisionLocation }); }
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); } }