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); } } } }
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); } }