public async Task <IActionResult> UploadWatchList([FromForm] WatchGroupWatchListForm watchGroupWatchListForm)
        {
            var watchList  = watchGroupWatchListForm.WatchList;
            var watchGroup = await _ctx.WatchGroups.FindAsync(watchGroupWatchListForm.watchGroupId);

            if (watchGroup == null || watchList == null || watchGroupWatchListForm.WatchList.Length > MAX_WATCHLIST_FILE_SIZE)
            {
                return(BadRequest());
            }

            var savePath = await _fileHandlerService.SaveFile(watchList, new[] { ".csv" });

            if (savePath == null)
            {
                return(BadRequest());
            }

            var pairs  = _csvReader.ReadKeyValues(savePath);
            var titles = pairs.Item1;

            var shortenedTitles = ShortenTitles(titles);
            var distinctTitles  = shortenedTitles.Distinct().ToList();

            var watchGroupItems = _ctx.WatchItems
                                  .Where(x => x.WatchGroupId == watchGroupWatchListForm.watchGroupId)
                                  .ToArray();

            var watchItems = MapWatchItemsOfTitles(distinctTitles, watchGroup, watchGroupItems);

            await SaveWatchItems(watchItems, watchGroupItems, savePath);

            return(Ok());
        }