Example #1
0
        public async Task AddDayPlan(DayPlan newDayPlan, string travelIdentity)
        {
            var location = await LocationRepository.GetLocation(travelIdentity);

            var dbDayPlan = DayPlanConverter.ToDbDayPlan(newDayPlan);
            await DayPlanRepository.AddDayPlan(dbDayPlan, travelIdentity, location.LocationId);

            foreach (var day in newDayPlan.Days)
            {
                var dbDay = DayPlanConverter.ToDbItinerary(day);
                await DayPlanRepository.AddItinerary(dbDay, newDayPlan.DayPlanId);

                foreach (var item in day.ItineraryItems)
                {
                    var dbItem = DayPlanConverter.ToDbItineraryItem(item);
                    await DayPlanRepository.AddItineraryItem(dbItem, dbDay.ItineraryId);

                    var poi = PoiConverter.ToDbPoi(item.Poi);
                    await PoiRepository.AddPoiToDayItem(poi, item.ItineraryItemId, location.LocationId);

                    if (item.Poi.Attribution != null)
                    {
                        var attributions = item.Poi.Attribution.Select(a => PoiConverter.ToDbAttribution(a)).ToList();
                        await PoiRepository.AddAttributionToPoi(poi.PoiId, attributions);
                    }
                }
            }
        }
Example #2
0
        public async Task AddCityWalk(CityWalk newWalk, string travelIdentity)
        {
            var location = await LocationRepository.GetLocation(travelIdentity);

            var dbWalk = CityWalkConverter.ToDbCityWalk(newWalk);
            var walk   = await CityWalkRepository.AddCityWalk(dbWalk, travelIdentity, location.LocationId);

            foreach (var domainPoint in newWalk.WayPoints)
            {
                var dbPoint = CityWalkConverter.ToDbWayPoint(domainPoint);
                var point   = await CityWalkRepository.AddWayPoint(dbPoint, walk.CityWalkId);

                var poi = PoiConverter.ToDbPoi(domainPoint.Poi);
                if (domainPoint.Poi.Attribution != null)
                {
                    var attributions = domainPoint.Poi.Attribution.Select(a => PoiConverter.ToDbAttribution(a)).ToList();
                    await PoiRepository.AddAttributionToPoi(poi.PoiId, attributions);
                }
                await PoiRepository.AddPoiToWayPoint(poi, point.WayPointId, location.LocationId);
            }
        }