Пример #1
0
        private StartingLane VerifyStartingLane(StartingLaneDto dto, HashSet <string> startingLaneIds)
        {
            if (string.IsNullOrEmpty(dto.StartingLaneId))
            {
                throw new ArgumentNullException("Missing StartingLaneId");
            }
            if (string.IsNullOrEmpty(dto.ShortName))
            {
                throw new ArgumentNullException("Missing StartingLane.ShortName");
            }
            if (!startingLaneIds.Add(dto.StartingLaneId))
            {
                throw new ArgumentOutOfRangeException("Duplicate StartingLaneId " + dto.StartingLaneId);
            }

            StartingLane startingLane = new StartingLane
            {
                ShortName      = dto.ShortName,
                StartingLaneId = dto.StartingLaneId,
                SubLanes       = new List <StartingLane>()
            };

            if (dto.SubLanes != null)
            {
                foreach (var subLane in dto.SubLanes)
                {
                    startingLane.SubLanes.Add(VerifyStartingLane(subLane, startingLaneIds));
                }
            }

            return(startingLane);
        }
Пример #2
0
 private static StartingLaneDto BuildStartingLane(StartingLane model)
 {
     return(new StartingLaneDto
     {
         ShortName = model.ShortName,
         StartingLaneId = model.StartingLaneId,
         SubLanes = model.SubLanes.Select(BuildStartingLane).ToList()
     });
 }
        private StartingLane BuildLane(string name, params StartingLane[] subLanes)
        {
            var thisLane = new StartingLane
            {
                StartingLaneId = name,
                ShortName      = name,
                SubLanes       = subLanes.ToList()
            };

            AdjustSublanesIds(name, thisLane.SubLanes);
            return(thisLane);
        }