Convert type checks and null checks into pattern matching

This commit is contained in:
Patrick Barron 2020-04-05 12:07:43 -04:00
parent 29539174a3
commit 5966ee6d87
9 changed files with 24 additions and 54 deletions

View file

@ -263,8 +263,7 @@ namespace MediaBrowser.Api
item.Overview = request.Overview; item.Overview = request.Overview;
item.Genres = request.Genres; item.Genres = request.Genres;
var episode = item as Episode; if (item is Episode episode)
if (episode != null)
{ {
episode.AirsAfterSeasonNumber = request.AirsAfterSeasonNumber; episode.AirsAfterSeasonNumber = request.AirsAfterSeasonNumber;
episode.AirsBeforeEpisodeNumber = request.AirsBeforeEpisodeNumber; episode.AirsBeforeEpisodeNumber = request.AirsBeforeEpisodeNumber;
@ -302,14 +301,12 @@ namespace MediaBrowser.Api
item.PreferredMetadataCountryCode = request.PreferredMetadataCountryCode; item.PreferredMetadataCountryCode = request.PreferredMetadataCountryCode;
item.PreferredMetadataLanguage = request.PreferredMetadataLanguage; item.PreferredMetadataLanguage = request.PreferredMetadataLanguage;
var hasDisplayOrder = item as IHasDisplayOrder; if (item is IHasDisplayOrder hasDisplayOrder)
if (hasDisplayOrder != null)
{ {
hasDisplayOrder.DisplayOrder = request.DisplayOrder; hasDisplayOrder.DisplayOrder = request.DisplayOrder;
} }
var hasAspectRatio = item as IHasAspectRatio; if (item is IHasAspectRatio hasAspectRatio)
if (hasAspectRatio != null)
{ {
hasAspectRatio.AspectRatio = request.AspectRatio; hasAspectRatio.AspectRatio = request.AspectRatio;
} }
@ -337,16 +334,14 @@ namespace MediaBrowser.Api
item.ProviderIds = request.ProviderIds; item.ProviderIds = request.ProviderIds;
var video = item as Video; if (item is Video video)
if (video != null)
{ {
video.Video3DFormat = request.Video3DFormat; video.Video3DFormat = request.Video3DFormat;
} }
if (request.AlbumArtists != null) if (request.AlbumArtists != null)
{ {
var hasAlbumArtists = item as IHasAlbumArtist; if (item is IHasAlbumArtist hasAlbumArtists)
if (hasAlbumArtists != null)
{ {
hasAlbumArtists.AlbumArtists = request hasAlbumArtists.AlbumArtists = request
.AlbumArtists .AlbumArtists
@ -357,8 +352,7 @@ namespace MediaBrowser.Api
if (request.ArtistItems != null) if (request.ArtistItems != null)
{ {
var hasArtists = item as IHasArtist; if (item is IHasArtist hasArtists)
if (hasArtists != null)
{ {
hasArtists.Artists = request hasArtists.Artists = request
.ArtistItems .ArtistItems
@ -367,20 +361,17 @@ namespace MediaBrowser.Api
} }
} }
var song = item as Audio; if (item is Audio song)
if (song != null)
{ {
song.Album = request.Album; song.Album = request.Album;
} }
var musicVideo = item as MusicVideo; if (item is MusicVideo musicVideo)
if (musicVideo != null)
{ {
musicVideo.Album = request.Album; musicVideo.Album = request.Album;
} }
var series = item as Series; if (item is Series series)
if (series != null)
{ {
series.Status = GetSeriesStatus(request); series.Status = GetSeriesStatus(request);

View file

@ -1050,8 +1050,7 @@ namespace MediaBrowser.Api.LiveTv
{ {
query.IsSeries = true; query.IsSeries = true;
var series = _libraryManager.GetItemById(request.LibrarySeriesId) as Series; if (_libraryManager.GetItemById(request.LibrarySeriesId) is Series series)
if (series != null)
{ {
query.Name = series.Name; query.Name = series.Name;
} }

View file

@ -438,8 +438,7 @@ namespace MediaBrowser.Api.Playback.Hls
{ {
var segmentId = "0"; var segmentId = "0";
var segmentRequest = request as GetHlsVideoSegment; if (request is GetHlsVideoSegment segmentRequest)
if (segmentRequest != null)
{ {
segmentId = segmentRequest.SegmentId; segmentId = segmentRequest.SegmentId;
} }
@ -690,8 +689,7 @@ namespace MediaBrowser.Api.Playback.Hls
return false; return false;
} }
var request = state.Request as IMasterHlsRequest; if (state.Request is IMasterHlsRequest request && !request.EnableAdaptiveBitrateStreaming)
if (request != null && !request.EnableAdaptiveBitrateStreaming)
{ {
return false; return false;
} }

View file

@ -243,9 +243,7 @@ namespace MediaBrowser.Api
// https://code.google.com/p/servicestack/source/browse/trunk/Common/ServiceStack.Text/ServiceStack.Text/Controller/PathInfo.cs // https://code.google.com/p/servicestack/source/browse/trunk/Common/ServiceStack.Text/ServiceStack.Text/Controller/PathInfo.cs
var id = Guid.Parse(GetPathValue(1)); var id = Guid.Parse(GetPathValue(1));
var plugin = _appHost.Plugins.First(p => p.Id == id) as IHasPluginConfiguration; if (!(_appHost.Plugins.First(p => p.Id == id) is IHasPluginConfiguration plugin))
if (plugin == null)
{ {
throw new FileNotFoundException(); throw new FileNotFoundException();
} }

View file

@ -123,9 +123,7 @@ namespace MediaBrowser.Api.ScheduledTasks
{ {
var isHidden = false; var isHidden = false;
var configurableTask = i.ScheduledTask as IConfigurableScheduledTask; if (i.ScheduledTask is IConfigurableScheduledTask configurableTask)
if (configurableTask != null)
{ {
isHidden = configurableTask.IsHidden; isHidden = configurableTask.IsHidden;
} }
@ -142,9 +140,7 @@ namespace MediaBrowser.Api.ScheduledTasks
{ {
var isEnabled = true; var isEnabled = true;
var configurableTask = i.ScheduledTask as IConfigurableScheduledTask; if (i.ScheduledTask is IConfigurableScheduledTask configurableTask)
if (configurableTask != null)
{ {
isEnabled = configurableTask.IsEnabled; isEnabled = configurableTask.IsEnabled;
} }

View file

@ -234,20 +234,17 @@ namespace MediaBrowser.Api
SetThumbImageInfo(result, item); SetThumbImageInfo(result, item);
SetBackdropImageInfo(result, item); SetBackdropImageInfo(result, item);
var program = item as LiveTvProgram; if (item is LiveTvProgram program)
if (program != null)
{ {
result.StartDate = program.StartDate; result.StartDate = program.StartDate;
} }
var hasSeries = item as IHasSeries; if (item is IHasSeries hasSeries)
if (hasSeries != null)
{ {
result.Series = hasSeries.SeriesName; result.Series = hasSeries.SeriesName;
} }
var series = item as Series; if (item is Series series)
if (series != null)
{ {
if (series.Status.HasValue) if (series.Status.HasValue)
{ {
@ -255,17 +252,13 @@ namespace MediaBrowser.Api
} }
} }
var album = item as MusicAlbum; if (item is MusicAlbum album)
if (album != null)
{ {
result.Artists = album.Artists; result.Artists = album.Artists;
result.AlbumArtist = album.AlbumArtist; result.AlbumArtist = album.AlbumArtist;
} }
var song = item as Audio; if (item is Audio song)
if (song != null)
{ {
result.AlbumArtist = song.AlbumArtists.FirstOrDefault(); result.AlbumArtist = song.AlbumArtists.FirstOrDefault();
result.Artists = song.Artists; result.Artists = song.Artists;

View file

@ -424,9 +424,7 @@ namespace MediaBrowser.Api
if (!string.IsNullOrWhiteSpace(request.SeasonId)) if (!string.IsNullOrWhiteSpace(request.SeasonId))
{ {
var season = _libraryManager.GetItemById(new Guid(request.SeasonId)) as Season; if (!(_libraryManager.GetItemById(new Guid(request.SeasonId)) is Season season))
if (season == null)
{ {
throw new ResourceNotFoundException("No season exists with Id " + request.SeasonId); throw new ResourceNotFoundException("No season exists with Id " + request.SeasonId);
} }

View file

@ -82,8 +82,7 @@ namespace MediaBrowser.Api.UserLibrary
{ {
var parent = GetParentItem(request); var parent = GetParentItem(request);
var collectionFolder = parent as IHasCollectionType; if (parent is IHasCollectionType collectionFolder)
if (collectionFolder != null)
{ {
return collectionFolder.CollectionType; return collectionFolder.CollectionType;
} }

View file

@ -199,14 +199,12 @@ namespace MediaBrowser.Api.UserLibrary
item = _libraryManager.GetUserRootFolder(); item = _libraryManager.GetUserRootFolder();
} }
Folder folder = item as Folder; if (!(item is Folder folder))
if (folder == null)
{ {
folder = _libraryManager.GetUserRootFolder(); folder = _libraryManager.GetUserRootFolder();
} }
var hasCollectionType = folder as IHasCollectionType; if (folder is IHasCollectionType hasCollectionType
if (hasCollectionType != null
&& string.Equals(hasCollectionType.CollectionType, CollectionType.Playlists, StringComparison.OrdinalIgnoreCase)) && string.Equals(hasCollectionType.CollectionType, CollectionType.Playlists, StringComparison.OrdinalIgnoreCase))
{ {
request.Recursive = true; request.Recursive = true;