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); }
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); } } }
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); }