public async Task <IActionResult> CreatePluginBuildAsync(CreatePluginBuildRequest request) { var userId = HttpContext.User.FindFirstValue(ClaimTypes.Sid); if (!await _pluginService.UserIdOwnsPluginIdAsync(userId, request.PluginId)) { return(BadRequest(new GenericResponse { Success = false, Message = "Bad PluginId for creating a build" })); } var pluginBuildEntity = await _pluginBuildService.CreatePluginBuildAsync(request); if (pluginBuildEntity == null) { return(BadRequest(new GenericResponse { Success = false, Message = "Unable to create build." })); } return(Ok(new GenericResponse <PluginBuildEntity> { Success = true, Message = "Created plugin build.", Data = pluginBuildEntity })); }
public async Task <PluginBuildEntity> CreatePluginBuildAsync(CreatePluginBuildRequest request) { var latestPluginBuildVersion = await _database.PluginBuilds.AsNoTracking() .CountAsync(entity => entity.PluginId == request.PluginId) + 1; var pluginBuildEntity = new PluginBuildEntity { PluginId = request.PluginId, VersionCode = latestPluginBuildVersion, Version = request.Version, FileName = request.FileName, DownloadUrl = request.DownloadUrl, Deleted = false }; await _database.PluginBuilds.AddAsync(pluginBuildEntity); await _database.SaveChangesAsync(); return(pluginBuildEntity); }