Beispiel #1
0
        public async Task <JObject> GetDataAsJObjectAsync(string url, JsonType type)
        {
            var json = await _publicTransportRepository.DownloadData(url);

            try
            {
                if (!string.IsNullOrEmpty(json))
                {
                    var oldJson = _documentStoreRepository.GetDbJson(type);

                    if (oldJson != null && !string.IsNullOrEmpty(oldJson.Id))
                    {
                        _documentStoreRepository.Delete(oldJson.Id);
                    }

                    _documentStoreRepository.Save(new DbJson {
                        Json = json, Type = type
                    });
                }
                else
                {
                    json = _documentStoreRepository.GetDbJson(type).Json;
                }
            }
            catch (OutOfMemoryException e)
            {
                json = _documentStoreRepository.GetDbJson(type).Json;
            }

            return(JsonConvert.DeserializeObject <JObject>(json));
        }
        public async Task <List <TimeTableDateTime> > MassDownloadAndSaveToDb(List <StopTimeUrl> convertedStopTimes)
        {
            var entitiesThatWerentDownloaded = new List <TimeTableDateTime>();

            try
            {
                foreach (var stopTime in convertedStopTimes)
                {
                    var objectsToSaveInDb = new List <TimeTableJson>();

                    using (var client = new HttpClient())
                    {
                        foreach (var url in stopTime.Urls)
                        {
                            var json = await _publicTransportRepository.DownloadData(url, client);

                            if (!string.IsNullOrEmpty(json))
                            {
                                objectsToSaveInDb.Add(new TimeTableJson()
                                {
                                    RouteId = stopTime.RouteId,
                                    Json    = json
                                });
                            }
                            else
                            {
                                entitiesThatWerentDownloaded.Add(new TimeTableDateTime()
                                {
                                    RouteId = stopTime.RouteId,
                                    Date    = _timeService.GetDateFromUrl(url)
                                });
                            }
                        }
                    }

                    _documentStoreRepository.Save(objectsToSaveInDb);
                }
            }
            catch (Exception e)
            {
                var message = e.Message;
            }

            return(entitiesThatWerentDownloaded);
        }
        public async Task <DelayData> GetData(string url)
        {
            var json = await _publicTransportRepository.DownloadData(url);

            return(JsonConvert.DeserializeObject <DelayData>(json));
        }