示例#1
0
        /// <summary>
        /// Redraw all objects on Canvas
        /// </summary>
        public static void RedrawAllObjects(Canvas canvas)
        {
            //clear canvas
            canvas.Children.Clear();

            //draw roads
            foreach (var road in Roads)
            {
                RoadCreator.DrawRoad(canvas, road);
            }

            //draw Buildings
            foreach (var building in Buildings)
            {
                BuildingCreator.DrawBuilding(canvas, building);
            }

            //draw Garages
            foreach (var garage in Garages)
            {
                GarageCreator.drawGarage(canvas, garage);
            }

            // check for unnessesary intersection if so remove or nessesary
            IntersectionCreator.UpdateIntersections(Roads, Intersections);

            //draw Intersection
            foreach (var intersection in Intersections)
            {
                IntersectionCreator.DrawIntersection(canvas, intersection);
            }
        }
示例#2
0
 /// <summary>
 /// EventHandler that changes the width of a road
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void ChangeWidthRoadEventHandler(object sender, PropertyChangedEventArgs e)
 {
     try
     {
         if (Creator.SelectRoad != null)
         {
             Creator.SelectRoad.Width = NumericWidthRoad.Value;
             IntersectionCreator.UpdateIntersection(Creator.SelectRoad, ObjectHandler.Intersections, ObjectHandler.Roads);
             ObjectHandler.RedrawAllObjects(Canvas);
         }
     }
     catch (NullReferenceException) { } // because creator does not exist before the first event is fired in XML
 }
示例#3
0
 public void TestIntersectionOfTwoIntervals()
 {
     Assert.True(IntersectionCreator.HasIntersection(_targetInterval, _intervals[0]));
     Assert.True(IntersectionCreator.HasIntersection(_targetInterval, _intervals[1]));
     Assert.True(IntersectionCreator.HasIntersection(_targetInterval, _intervals[2]));
     Assert.True(IntersectionCreator.HasIntersection(_targetInterval, _intervals[3]));
     Assert.True(IntersectionCreator.HasIntersection(_targetInterval, _intervals[4]));
     Assert.True(IntersectionCreator.HasIntersection(_targetInterval, _intervals[5]));
     Assert.False(IntersectionCreator.HasIntersection(_targetInterval, _intervals[6]));
     Assert.False(IntersectionCreator.HasIntersection(_targetInterval, _intervals[7]));
     Assert.False(IntersectionCreator.HasIntersection(_targetInterval, _intervals[8]));
     Assert.False(IntersectionCreator.HasIntersection(_targetInterval, _intervals[9]));
 }
示例#4
0
        public async Task <IActionResult> GetIntervals(int userId,
                                                       [FromBody] DateTimeIntervalForIntersectionDto intervalForIntersection)
        {
            var intervalsFromRepo = await _repo.GetIntervals(userId);

            var targetInterval = _mapper.Map <DateTimeInterval>(intervalForIntersection);

            if (!DateTimeIntervalValidator.Validate(targetInterval))
            {
                return(BadRequest("Invalid interval"));
            }

            var result = IntersectionCreator.CreateIntersection(intervalsFromRepo, targetInterval);

            var intersection = _mapper.Map <IEnumerable <DateTimeIntervalForReturnDto> >(result);

            return(Ok(intersection));
        }
示例#5
0
        public void TestResultIntersectionListCreation()
        {
            var resultIntersection = IntersectionCreator.CreateIntersection(_intervals, _targetInterval);

            var dateTimeIntervals = resultIntersection.ToList();

            Assert.True(dateTimeIntervals.Count == 6);

            Assert.Contains(_intervals[0], dateTimeIntervals);
            Assert.Contains(_intervals[1], dateTimeIntervals);
            Assert.Contains(_intervals[2], dateTimeIntervals);
            Assert.Contains(_intervals[3], dateTimeIntervals);
            Assert.Contains(_intervals[4], dateTimeIntervals);
            Assert.Contains(_intervals[5], dateTimeIntervals);

            Assert.DoesNotContain(_intervals[6], dateTimeIntervals);
            Assert.DoesNotContain(_intervals[7], dateTimeIntervals);
            Assert.DoesNotContain(_intervals[8], dateTimeIntervals);
            Assert.DoesNotContain(_intervals[9], dateTimeIntervals);
        }