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