private async Task <bool> AddMediaInfoInternal(SessionInfoWithError s, WebCache_Media media)
        {
            try
            {
                Models.Database.WebCache_Media m = await _db.WebCache_Medias.FirstOrDefaultAsync(a => a.ED2K == media.ED2K);

                if (m == null)
                {
                    m = new Models.Database.WebCache_Media();
                    _db.Add(m);
                }
                else if (m.Version >= media.Version)
                {
                    return(false);
                }

                m.Version      = media.Version;
                m.MediaInfo    = media.MediaInfo;
                m.ED2K         = media.ED2K;
                m.CreationDate = DateTime.UtcNow;
                m.AniDBUserId  = s.AniDBUserId;
                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
        public async Task <IActionResult> GetMediaInfo(string token, string ed2k)
        {
            try
            {
                SessionInfoWithError s = await VerifyTokenAsync(token);

                if (s.Error != null)
                {
                    return(s.Error);
                }
                ed2k = ed2k.ToUpperInvariant();
                Models.Database.WebCache_Media m = await _db.WebCache_Medias.FirstOrDefaultAsync(a => a.ED2K == ed2k);

                if (m == null)
                {
                    return(StatusCode(404, "Media Not Found"));
                }
                return(new JsonResult(m));
            }
            catch (Exception e)
            {
                _logger.LogError(e, $"GETMEDIAINFO with Token={token} ED2K={ed2k}");
                return(StatusCode(500));
            }
        }