예제 #1
0
        public async Task <IActionResult> CreatePluginAsync(CreatePluginRequest request)
        {
            if (await _srv.GetPluginByGuidAsync(request.Guid) != null)
            {
                return(BadRequest(new GenericResponse
                {
                    Success = false,
                    Message = "Bad Guid to create a new plugin."
                }));
            }
            var userId       = HttpContext.User.FindFirstValue(ClaimTypes.Sid);
            var pluginEntity = await _srv.CreatePluginAsync(request, userId);

            return(Ok(new GenericResponse <PluginEntity>
            {
                Success = true,
                Message = "Created plugin.",
                Data = pluginEntity
            }));
        }
        public async Task <PluginEntity> CreatePluginAsync(CreatePluginRequest request, int userId)
        {
            var pluginEntity = new PluginEntity
            {
                Guid                = request.Guid,
                Name                = request.Name,
                Description         = request.Description,
                MarkdownDescription = request.MarkdownDescription,
                StarCount           = 0,
                CreatorUserId       = userId,
                ServerDistroId      = request.ServerDistroId,
                ImageUrl            = request.ImageUrl,
                CreatedAt           = DateTimeOffset.UtcNow,
                UpdatedAt           = DateTimeOffset.UtcNow
            };
            await _database.Plugins.AddAsync(pluginEntity);

            await _database.SaveChangesAsync();

            return(pluginEntity);
        }
 public async Task <PluginEntity> CreatePluginAsync(CreatePluginRequest request, string userId)
 {
     return(await CreatePluginAsync(request, int.Parse(userId)));
 }