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 <IEnumerable <CityWalk> > GetCityWalks(string travelIdentity) { var dbWalks = await CityWalkRepository.GetCityWalks(travelIdentity); if (!dbWalks.Any()) { return(new List <CityWalk>()); } var domainWalks = new List <CityWalk>(); foreach (var walk in dbWalks) { var dbPoints = await CityWalkRepository.GetWayPoints(walk.CityWalkId); var domainPoints = new List <WayPoint>(); foreach (var point in dbPoints) { var dbPoi = await CityWalkRepository.GetPoi(point.WayPointId); var dbAttributions = await PoiRepository.GetPoiAttributions(dbPoi.PoiId); var domainAttributions = dbAttributions.Select(a => PoiConverter.ToDomainAttribution(a)); var domainPoi = PoiConverter.ToDomainPoi(dbPoi); domainPoi.Attribution = domainAttributions.ToArray(); var domainPoint = CityWalkConverter.ToDomainWayPoint(point, domainPoi); domainPoints.Add(domainPoint); } var domainWalk = CityWalkConverter.ToDomainCityWalk(walk, domainPoints.ToArray()); domainWalks.Add(domainWalk); } return(domainWalks.ToArray()); }
public async Task <ToSeeItem> UpdateToSeeItem(ToSeeItem newItem) { var item = ToSeeItemConverter.ToDbToSeeItem(newItem); var resp = await ListsRepository.EditToSeeItem(item); var poi = await ListsRepository.GetToSeeItemPoi(resp.Id); var convertedPoi = PoiConverter.ToDomainPoi(poi); return(ToSeeItemConverter.ToDomainToSeeItem(resp, convertedPoi)); }
public async Task <ToSeeItem> AddToSeeItem(string poiId, string travelIdentity) { var toDo = new DbToSeeItem { Checked = false, Id = Guid.NewGuid().ToString(), Name = poiId }; var addedItem = await ListsRepository.AddToSeeItem(toDo, travelIdentity); var poi = await ListsRepository.GetToSeeItemPoi(addedItem.Id); var convertedPoi = PoiConverter.ToDomainPoi(poi); return(ToSeeItemConverter.ToDomainToSeeItem(addedItem, convertedPoi)); }
public async Task <ToSeeItem[]> GetToSeeItem(string travelIdentity) { var items = await ListsRepository.GetToSeeItems(travelIdentity); var domainItems = new List <ToSeeItem>(); foreach (var item in items) { var poi = await ListsRepository.GetToSeeItemPoi(item.Id); var dbAttributions = await PoiRepository.GetPoiAttributions(poi.PoiId); var domainAttributions = dbAttributions.Select(a => PoiConverter.ToDomainAttribution(a)); var convertedPoi = PoiConverter.ToDomainPoi(poi); convertedPoi.Attribution = domainAttributions.ToArray(); var domainItem = ToSeeItemConverter.ToDomainToSeeItem(item, convertedPoi); domainItems.Add(domainItem); } return(domainItems.ToArray()); }
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); } }
public async Task <IEnumerable <DayPlan> > GetDayPlans(string travelIdentity) { var dbPlans = await DayPlanRepository.GetDayPlans(travelIdentity); if (!dbPlans.Any()) { return(new List <DayPlan>()); } var domainDayPlans = new List <DayPlan>(); foreach (var plan in dbPlans) { var dbDays = await DayPlanRepository.GetItineraries(plan.DayPlanId); var domainDays = new List <Itinerary>(); foreach (var day in dbDays) { var dbDayItems = await DayPlanRepository.GetItinerariyItems(day.ItineraryId); var domainItems = new List <ItineraryItem>(); foreach (var item in dbDayItems) { var dbPoi = await DayPlanRepository.GetPoi(item.ItineraryItemId); var dbAttributions = await PoiRepository.GetPoiAttributions(dbPoi.PoiId); var domainattributions = dbAttributions.Select(a => PoiConverter.ToDomainAttribution(a)); var poi = PoiConverter.ToDomainPoi(dbPoi); poi.Attribution = domainattributions.ToArray(); var domainItem = DayPlanConverter.ToDomainItineraryItem(item, poi); domainItems.Add(domainItem); } var domainDay = DayPlanConverter.ToDomainItinerary(day, domainItems.ToArray()); domainDays.Add(domainDay); } var domainDayPlan = DayPlanConverter.ToDomainDayPlan(plan, domainDays.ToArray()); domainDayPlans.Add(domainDayPlan); } return(domainDayPlans.ToArray()); }
public async Task <Poi[]> GetPoisForTravel(string travelIdentity) { var response = await LocationRepository.GetPoisForLocation(travelIdentity); return(response.Select(r => PoiConverter.ToDomainPoi(r)).ToArray()); }