Пример #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);
                    }
                }
            }
        }
Пример #2
0
        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());
        }