public GroupSpace CreateGroupSpace(GroupSpace groupSpace)
        {
            var newGroupSpace = _context.GroupSpaces.Add(groupSpace).Entity;

            _context.SaveChangesAsync();
            return(newGroupSpace);
        }
        public GroupSpace UpdateGroupSpace(GroupSpace groupSpaceUpdate)
        {
            var groupSpace = _context.GroupSpaces.Update(groupSpaceUpdate).Entity;

            _context.SaveChangesAsync();
            return(groupSpace);
        }
        public ActionResult <GroupSpace> Put([FromBody] GroupSpace groupSpace)
        {
            //if (id != null || id != groupSpace.Id.ToString())
            //{
            //    return BadRequest("parameter id and GroupSpace id must be a match");
            //}

            return(_groupSpaceService.UpdateGroupSpace(groupSpace));
        }
        public GroupSpace UpdateGroupSpace(GroupSpace groupSpaceUpdate)
        {
            var groupSpace = FindGroupSpaceById(groupSpaceUpdate.Id.ToString());

            groupSpace.Id   = groupSpaceUpdate.Id;
            groupSpace.Name = groupSpaceUpdate.Name;
            groupSpace.DatabaseConnectionString = groupSpaceUpdate.DatabaseConnectionString;
            return(_groupSpaceRepo.UpdateGroupSpace(groupSpace));
        }
        //Skal lave reference til den bruger der opretter et nyt space
        public GroupSpace CreateGroupSpace(GroupSpace groupSpace, int creatorUserId)
        {
            _userGroupSpaceRepository.CreateGroupSpaceReference(groupSpace, creatorUserId);

            if (string.IsNullOrEmpty(groupSpace.Id.ToString()) || string.IsNullOrEmpty(groupSpace.Name) || string.IsNullOrEmpty(groupSpace.DatabaseConnectionString))
            {
                throw new InvalidDataException("Missing fields");
            }
            return(_groupSpaceRepo.CreateGroupSpace(groupSpace));
        }
        public UserGroupSpace CreateGroupSpaceReference(GroupSpace groupSpace, int creatorUserId)
        {
            var reference = new UserGroupSpace()
            {
                GroupSpaceId = groupSpace.Id,
                UserId = creatorUserId
            };

            var newUserGroupSpaceReference = _context.UserGroupSpaces.Add(reference).Entity;
            _context.SaveChangesAsync();
            return newUserGroupSpaceReference;
        }
        public GroupSpace NewGroupSpace(string groupSpaceId, string name, string dbConString)
        {
            GroupSpace groupSpace = new GroupSpace
            {
                Id   = Guid.Parse(groupSpaceId),
                Name = name,
                DatabaseConnectionString = dbConString
            };

            return(groupSpace);

            ;
        }
        public ActionResult <GroupSpace> CreateGroupSpace([FromBody] JObject data)
        {
            //Skulle i fremtiden tjekker om brugeren overhovedet eksistere

            try
            {
                int userId = (int)data["userId"];
                if (userId != 0)
                {
                    GroupSpace newGroupSpace = data["groupSpace"].ToObject <GroupSpace>();

                    return(_groupSpaceService.CreateGroupSpace(newGroupSpace, userId));
                }
                else
                {
                    return(BadRequest("No user id parameter given."));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }