public async Task <ServerEntity> CreateUpdateServerAsync(CreateUpdateServerRequest request, int userId)
        {
            var server = await _database.ServerList.FindAsync(request.Id);

            if (server == null)
            {
                server = new ServerEntity
                {
                    Name        = request.Name,
                    Description = request.Description,
                    IpAddress   = request.IpAddress,
                    Port        = request.Port,
                    OwnerUserId = userId,
                    StarCount   = 0,
                    ImageUrl    = request.ImageUrl
                };
                await _database.ServerList.AddAsync(server);
            }
            else
            {
                if (userId != server.OwnerUserId)
                {
                    return(null);
                }
                server.Name        = request.Name;
                server.Description = request.Description;
                server.IpAddress   = request.IpAddress;
                server.Port        = request.Port;
                server.ImageUrl    = request.ImageUrl;
                _database.ServerList.Update(server);
            }
            await _database.SaveChangesAsync();

            return(server);
        }
        public async Task <IActionResult> CreateUpdateServerAsync(CreateUpdateServerRequest request)
        {
            var userId = HttpContext.User.FindFirstValue(ClaimTypes.Sid);
            var server = await _srv.CreateUpdateServerAsync(request, userId);

            if (server == null)
            {
                return(BadRequest(new GenericResponse
                {
                    Success = false,
                    Message = "Could not create server."
                }));
            }
            return(Ok(new GenericResponse <ServerEntity>
            {
                Success = true,
                Data = server
            }));
        }
 public Task <ServerEntity> CreateUpdateServerAsync(CreateUpdateServerRequest request, string userId)
 {
     return(CreateUpdateServerAsync(request, int.Parse(userId)));
 }