Esempio n. 1
0
        public Series ConvertToSeriesRuntimeAndBroadcast(SeriesJson seriesJson)
        {
            // convert air time - 2 possible formats
            bool isParsed = DateTime.TryParseExact(seriesJson.AirsTime, "hh:mm tt",
                                                   CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime convertedAirTimeDateTime);

            TimeSpan convertedAirTime = TimeSpan.Zero;

            if (isParsed)
            {
                convertedAirTime = convertedAirTimeDateTime.TimeOfDay;
            }
            else
            {
                isParsed = DateTime.TryParseExact(seriesJson.AirsTime, "h:mm tt",
                                                  CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime convertedAirTimeDateTime2);
                if (isParsed)
                {
                    convertedAirTime = convertedAirTimeDateTime2.TimeOfDay;
                }
            }

            bool isDayOfWeekParsed = Enum.TryParse(seriesJson.AirsDayOfWeek, out DayOfWeek convertedDayOfWeek);

            bool isRuntimeParsed = Int32.TryParse(seriesJson.Runtime, out int convertedRuntime);

            var series = new Series {
                AirTime = convertedAirTime
            };


            if (isDayOfWeekParsed)
            {
                series.AirDayOfWeek = convertedDayOfWeek;
            }

            if (isRuntimeParsed)
            {
                series.EpisodeRuntime = convertedRuntime;
            }

            return(series);
        }
Esempio n. 2
0
        private async Task ImportSeriesDetailsFromTvDb()
        {
            // get and set token
            await _tvDbApi.RefreshJwtToken();

            for (var index = 0; index < _importSeriesIds.Count; index++)
            {
                var seriesId = _importSeriesIds.ElementAt(index);

                var tvDbId = await _tvSeriesContext
                             .Series
                             .Where(x => x.MovieDbId == seriesId)
                             .Select(x => x.TvDbId)
                             .FirstOrDefaultAsync();

                SeriesJson seriesJson = null;

                if (tvDbId != null)
                {
                    seriesJson = await _tvDbApi.GetSeries(tvDbId.Value);
                }

                if (seriesJson != null)
                {
                    var seriesFromImport = _tvDbDomainConverter.ConvertToSeriesRuntimeAndBroadcast(seriesJson);

                    var seriesFromDb = await _tvSeriesContext
                                       .Series
                                       .Where(x => x.MovieDbId == seriesId)
                                       .FirstOrDefaultAsync();

                    await _movieDbImportServiceDbHelper.UpdateSeriesRuntimeAndBroadcast(seriesFromDb, seriesFromImport);
                }
                else
                {
                    _logger.LogInformation("Series with TvDbId [{0}] not found", tvDbId);
                }
            }
        }
Esempio n. 3
0
        public async Task <Series> ConvertToSeries(SeriesJson seriesJson)
        {
            DateTime.TryParseExact(seriesJson.FirstAired, "yyyy-MM-dd",
                                   CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime convertedAirFrom);

            // convert air time - 2 possible formats
            bool isParsed = DateTime.TryParseExact(seriesJson.AirsTime, "hh:mm tt",
                                                   CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime convertedAirTimeDateTime);

            TimeSpan convertedAirTime = TimeSpan.Zero;

            if (isParsed)
            {
                convertedAirTime = convertedAirTimeDateTime.TimeOfDay;
            }
            else
            {
                isParsed = DateTime.TryParseExact(seriesJson.AirsTime, "h:mm tt",
                                                  CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime convertedAirTimeDateTime2);
                if (isParsed)
                {
                    convertedAirTime = convertedAirTimeDateTime2.TimeOfDay;
                }
            }

            bool isDayOfWeekParsed = Enum.TryParse(seriesJson.AirsDayOfWeek, out DayOfWeek convertedDayOfWeek);

            bool isRuntimeParsed = Decimal.TryParse(seriesJson.Runtime, out decimal convertedRuntime);

            bool isTvDbIdParsed = Int64.TryParse(seriesJson.Id, out long convertedTvDbId);

            var series = new Series
            {
                Name      = seriesJson.SeriesName,
                Overview  = seriesJson.Overview,
                Status    = ConvertToStatus(seriesJson.Status),
                AiredFrom = convertedAirFrom,
                AirTime   = convertedAirTime,
                // TODO change logic to uncomment genres
                //Genres = convertedGenres,
            };

            if (isTvDbIdParsed)
            {
                series.TvDbId = convertedTvDbId;
            }

            if (isDayOfWeekParsed)
            {
                series.AirDayOfWeek = convertedDayOfWeek;
            }

            if (isRuntimeParsed)
            {
                //series.EpisodeRuntime = convertedRuntime;

                await ConvertToGenres(series, seriesJson.Genres);
            }

            return(series);
        }