public async Task <List <CheckModBuildUpdateResponse> > GetLatestModBuilds(CheckModBuildUpdateRequest request) { return(await _database.Mods.AsNoTracking() .Where(m => request.Guids.Contains(m.Guid)) .Include(m => m.Builds) .SelectMany(g => g.Builds .Where(mb => mb.Deleted == false) .Where(mb => mb.GamePlatform == request.GamePlatform) .Where(mb => mb.GameVersion == request.GameVersion) .OrderByDescending(mb => mb.VersionCode) .Take(1), (m, mb) => new CheckModBuildUpdateResponse { Guid = m.Guid, ModBuild = mb }) .ToListAsync()); }
public async Task <IActionResult> CheckModBuildUpdates(CheckModBuildUpdateRequest request) { var modBuildUpdates = await _modsService.GetLatestModBuilds(request); if (modBuildUpdates == null) { return(BadRequest(new GenericResponse { Success = false, Message = "GUIDs do not have mods and/or mod builds associated with them" })); } return(Ok(new GenericResponse <List <CheckModBuildUpdateResponse> > { Success = true, Data = modBuildUpdates })); }