Example #1
0
 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
            }));
        }