public User Create(User user, SUGARContext context = null)
        {
            var didCreate = false;

            if (context == null)
            {
                context   = ContextFactory.Create();
                didCreate = true;
            }

            if (context.Users.Any(g => g.Name == user.Name))
            {
                throw new DuplicateRecordException($"A user with the name: \"{user.Name}\" already exists.");
            }

            context.Users.Add(user);

            if (didCreate)
            {
                context.SaveChanges();
                context.Dispose();
            }

            return(user);
        }
        private static Skill CreateSkill(SUGARContext context, int gameId, string key)
        {
            var skill = context.Skills.Add(new Skill
            {
                GameId              = gameId,
                ActorType           = ActorType.User,
                Description         = key,
                EvaluationCriterias = new List <EvaluationCriteria>
                {
                    new EvaluationCriteria
                    {
                        ComparisonType         = ComparisonType.GreaterOrEqual,
                        CriteriaQueryType      = CriteriaQueryType.Sum,
                        EvaluationDataCategory = EvaluationDataCategory.GameData,
                        EvaluationDataType     = EvaluationDataType.Long,
                        EvaluationDataKey      = key,
                        Scope = CriteriaScope.Actor,
                        Value = $"{100}"
                    }
                },
                Name  = key,
                Token = key
            }).Entity;

            context.SaveChanges();
            return(skill);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Immediately creates a new relationship between 2 actors
        /// </summary>
        /// <param name="newRelation">Relationship to create</param>
        /// <param name="context">Optional DbContext to perform opperations on. If ommitted a DbContext will be created.</param>
        public void CreateRelationship(ActorRelationship newRelation, SUGARContext context = null)
        {
            var didCreateContext = false;

            if (context == null)
            {
                context          = ContextFactory.Create();
                didCreateContext = true;
            }

            if (newRelation.AcceptorId == newRelation.RequestorId)
            {
                throw new InvalidRelationshipException("Two different users are needed to create a relationship.");
            }

            var hasConflicts = context.Relationships
                               .Any(r => AreRelated(r, newRelation));

            if (!hasConflicts)
            {
                hasConflicts = context.RelationshipRequests
                               .Any(r => AreRelated(r, newRelation));
            }

            if (hasConflicts)
            {
                throw new DuplicateRelationshipException("A relationship with these users already exists.");
            }

            var requestorExists = context.Actors.Any(u => u.Id == newRelation.RequestorId);

            if (!requestorExists)
            {
                throw new InvalidRelationshipException("The requesting user does not exist.");
            }

            var acceptorExists = context.Actors.Any(u => u.Id == newRelation.AcceptorId);

            if (!acceptorExists)
            {
                throw new InvalidRelationshipException("The targeted user does not exist.");
            }

            var relation = new ActorRelationship
            {
                RequestorId = newRelation.RequestorId,
                AcceptorId  = newRelation.AcceptorId
            };

            context.Relationships.Add(relation);

            if (didCreateContext)
            {
                context.SaveChanges();
                context.Dispose();
            }
        }
        private static User CreateUser(SUGARContext context, string name)
        {
            var user = context.Users.Add(new User
            {
                Name = name
            }).Entity;

            context.SaveChanges();
            return(user);
        }
        private static Game CreateGame(SUGARContext context, string name)
        {
            var game = context.Games.Add(new Game
            {
                Name = name
            }).Entity;

            context.SaveChanges();
            return(game);
        }
        private static ActorRole CreateActorRole(SUGARContext context, Role role, Actor actor, int entityId)
        {
            var actorRole = context.ActorRoles.Add(new ActorRole
            {
                Role     = role,
                Actor    = actor,
                EntityId = entityId
            }).Entity;

            context.SaveChanges();
            return(actorRole);
        }
        private static AccountSource CreateAccountSource(SUGARContext context, string description, string token, bool requiresPass)
        {
            var accountSource = context.AccountSources.Add(new AccountSource
            {
                Description      = description,
                Token            = token,
                RequiresPassword = requiresPass
            }).Entity;

            context.SaveChanges();
            return(accountSource);
        }
        private static Role CreateRole(SUGARContext context, ClaimScope claimScope, bool defaultRole = true)
        {
            var role = context.Roles.Add(new Role
            {
                Name       = claimScope.ToString(),
                ClaimScope = claimScope,
                Default    = defaultRole
            }).Entity;

            context.SaveChanges();
            return(role);
        }
        private static Account CreateAccount(SUGARContext context, string name, string password, AccountSource source, User user)
        {
            var account = context.Accounts.Add(new Account
            {
                Name          = name,
                Password      = password,
                AccountSource = source,
                User          = user
            }).Entity;

            context.SaveChanges();
            return(account);
        }
        private static Leaderboard CreateLeaderboard(SUGARContext context, int gameId, string key, ActorType type = ActorType.User)
        {
            var leaderboard = context.Leaderboards.Add(new Leaderboard
            {
                Token                  = key,
                GameId                 = gameId,
                Name                   = key,
                EvaluationDataKey      = key,
                EvaluationDataCategory = EvaluationDataCategory.GameData,
                ActorType              = type,
                EvaluationDataType     = EvaluationDataType.Long,
                CriteriaScope          = CriteriaScope.Actor,
                LeaderboardType        = LeaderboardType.Highest
            }).Entity;

            context.SaveChanges();
            return(leaderboard);
        }
Exemplo n.º 11
0
        public ActorRole Create(ActorRole actorRole, SUGARContext context = null)
        {
            var didCreate = false;

            if (context == null)
            {
                context   = ContextFactory.Create();
                didCreate = true;
            }

            context.ActorRoles.Add(actorRole);

            if (didCreate)
            {
                context.SaveChanges();
                context.Dispose();
            }

            return(actorRole);
        }
Exemplo n.º 12
0
        public Game Create(Game game, SUGARContext context = null)
        {
            var didCreateContext = false;

            if (context == null)
            {
                context          = ContextFactory.Create();
                didCreateContext = true;
            }

            context.Games.Add(game);

            if (didCreateContext)
            {
                context.SaveChanges();
                context.Dispose();
            }

            return(game);
        }
Exemplo n.º 13
0
        public Group Create(Group group, SUGARContext context = null)
        {
            var didCreateContext = false;

            if (context == null)
            {
                context          = ContextFactory.Create();
                didCreateContext = true;
            }

            context.Groups.Add(group);

            if (didCreateContext)
            {
                context.SaveChanges();
                context.Dispose();
            }

            return(group);
        }