private async Task <List <MediaItem> > GetMediaItems(GetMediaItemsByUniqueNameRequest request)
        {
            Guid accountId        = request.User.AccountId;
            Guid requestingUserId = request.User.UserId;

            if (request.LatestOnly)
            {
                var item = await _mediaService.LoadLatestByUniqueNameAsync(accountId, requestingUserId, request.UniqueName);

                return(new List <MediaItem> {
                    item
                });
            }
            return(await _mediaService.LoadByUniqueNameAsync(accountId, requestingUserId, request.UniqueName, request.Start, request.Limit));
        }
        public async Task <GetMediaItemsByUniqueNameResponse> GetMediaItemsByUniqueNameAsync(GetMediaItemsByUniqueNameRequest request)
        {
            var stopwatch = Stopwatch.StartNew();

            Logger.LogMessage("GetMediaItemsByUniqueName Unique Name: '{0}'", request.UniqueName);

            try
            {
                List <MediaItem> mediaItems = await GetMediaItems(request);

                return(new GetMediaItemsByUniqueNameResponse
                {
                    MediaItems = Mapper.Map <List <MediaItemDto> >(mediaItems),
                });
            }
            finally
            {
                stopwatch.Stop();
                Logger.LogMessage("GetMediaItemsByUniqueName took: {0}", stopwatch.ElapsedMilliseconds);
            }
        }