Beispiel #1
0
        public static async Task <GetTeamsReply> GetTeamsAsync(GetTeamsRequest request, ServerCallContext context)
        {
            using var db = new LegendaryDatabase();
            var connector = DbConnector.Create(db.Connection, new DbConnectorSettings {
                AutoOpen = true, LazyOpen = true
            });

            var reply = new GetTeamsReply {
                Status = new Status {
                    Code = 200
                }
            };

            var select = DatabaseDefinition.BuildSelectStatement(request.Fields);
            var joins  = DatabaseDefinition.BuildRequiredJoins(request.Fields);

            var where = !string.IsNullOrWhiteSpace(request.Name) ?
                        $"where { DatabaseDefinition.BuildWhereStatement(TeamField.TeamName, WhereStatementType.Like)}" :
                        request.TeamIds.Count() != 0 ?
                        $"where { DatabaseDefinition.BuildWhereStatement(TeamField.TeamId, WhereStatementType.Includes)}" :
                        "";

            var whereMatch = !string.IsNullOrWhiteSpace(request.Name) ?
                             new (string, object)[] { (DatabaseDefinition.GetSelectResult(TeamField.TeamName), $"%{request.Name}%") } :
Beispiel #2
0
        internal static async ValueTask <IReadOnlyList <SchemeTwistRequirement> > GetSchemeTwistRequirementsAsync(int schemeId)
        {
            using var db = new LegendaryDatabase();
            var connector = DbConnector.Create(db.Connection, new DbConnectorSettings {
                AutoOpen = true, LazyOpen = true
            });

            var fields = DatabaseDefinition.BasicFields;

            var numberOfPlayersResult = $"{TableNames.SchemeTwistRequirements}_NumberOfPlayers";

            var selectStatement = DatabaseDefinition.BuildSelectStatement(fields);
            var joinStatement   = DatabaseDefinition.BuildRequiredJoins(fields);
            var whereStatement  = $"where {DatabaseDefinition.BuildWhereStatement(SchemeTwistRequirement.SchemeIdFieldNumber, WhereStatementType.Equals)}";

            // Create new card requirement
            return(await connector.Command($@"
				select {selectStatement}
					from {TableNames.TwistRequirements}
					{joinStatement}
					{whereStatement};"                    ,
                                           (DatabaseDefinition.GetSelectResult(SchemeTwistRequirement.SchemeIdFieldNumber), schemeId))
                   .QueryAsync(x => MapSchemeTwistRequirement(x, DatabaseDefinition.BasicFields)));
        }