コード例 #1
0
        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
            }));
        }
コード例 #2
0
        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);
        }