public async Task <IHttpActionResult> GetCastles()
        {
            var locations = _directionService.GetDirection(_myLocation, _locations);

            locations.Insert(0, _myLocation);
            var routes  = new List <RouteModel>();
            var castles = new List <CastleModel>();

            castles.Add(new CastleModel()
            {
                Position = locations[0],
                Index    = 0
            });
            for (int i = 1; i < locations.Count; i++)
            {
                var castle = new CastleModel()
                {
                    Position = locations[i],
                    Index    = i
                };
                castles.Add(castle);
                routes.Add(new RouteModel(castles[i - 1], castles[i]));
                castles[i - 1].RouteCount++;
                castles[i].RouteCount++;
            }
            routes.Add(new RouteModel(castles[0], castles[castles.Count - 1]));
            castles[0].RouteCount++;
            castles[castles.Count - 1].RouteCount++;
            var min = 0;
            var max = 18;

            while (max - min > 1)
            {
                routes.Add(new RouteModel(castles[min], castles[max]));
                castles[min].RouteCount++;
                castles[max].RouteCount++;
                min++;
                max--;
            }
            return(Ok(new GetCastlesResponse
            {
                Castles = castles,
                Routes = routes
            }));
        }
 public RouteModel(CastleModel fromCastle, CastleModel toCastle)
 {
     FromCastle = fromCastle;
     ToCastle   = toCastle;
 }