public void SetAndCache(JObject tripsAsJObject, JObject busStopsAsJObject, JObject busLinesAsJObject, JObject expeditionsAsJObject, JObject stopsInTripsAsJObject) { var tripDataList = _tripService.GetData <TripData>(tripsAsJObject); var busStopDataList = _busStopService.GetData <BusStopData>(busStopsAsJObject); var busLineDataList = _busLineService.GetData <BusLineData>(busLinesAsJObject); var stopInTripDataList = _stopInTripService.GetData <StopInTripData>(stopsInTripsAsJObject); var expeditionData = _expeditionService.GetData <ExpeditionData>(expeditionsAsJObject).FirstOrDefault(); var busStopDataModel = _busStopModelService.JoinBusStopData(busStopDataList); var tripsWithBusStops = _joiner.GetTripsWithBusStopList(tripDataList, busStopDataList, busLineDataList, stopInTripDataList, expeditionData); DeleteAndStoreTripsInDb(tripsWithBusStops); var joinedTripsModelList = _joiner.GetJoinedTripsModelList(tripsWithBusStops, busLineDataList); var groupedJoinedTrips = _grouper.GroupTrips(joinedTripsModelList); DelayService.BusLineData = busLineDataList.FirstOrDefault(x => x.Day.Date <= DateTime.Today); DelayService.TripData = tripDataList.FirstOrDefault(x => x.Day.Date <= DateTime.Today); DelayService.SetChooseBusStopModelCollection(busStopDataModel, groupedJoinedTrips); _documentStoreRepository.UpdateGroupedJoinedModels(groupedJoinedTrips); _timeService.CacheLastUpdates(tripDataList.FirstOrDefault().LastUpdate, busStopDataList.FirstOrDefault().LastUpdate, busStopDataList.FirstOrDefault().LastUpdate, stopInTripDataList.FirstOrDefault().LastUpdate, expeditionData.LastUpdate); }