Пример #1
0
    public async Task CreateMasterGame(MasterGame masterGame)
    {
        string masterGameCreateSQL = "insert into tbl_mastergame" +
                                     "(MasterGameID,GameName,EstimatedReleaseDate,MinimumReleaseDate,MaximumReleaseDate,EarlyAccessReleaseDate,InternationalReleaseDate,AnnouncementDate," +
                                     "ReleaseDate,OpenCriticID,GGToken,CriticScore,Notes,BoxartFileName,GGCoverArtFileName," +
                                     "FirstCriticScoreTimestamp,DoNotRefreshDate,DoNotRefreshAnything,EligibilityChanged,DelayContention,AddedTimestamp) VALUES " +
                                     "(@MasterGameID,@GameName,@EstimatedReleaseDate,@MinimumReleaseDate,@MaximumReleaseDate,@EarlyAccessReleaseDate,@InternationalReleaseDate,@AnnouncementDate," +
                                     "@ReleaseDate,@OpenCriticID,@GGToken,@CriticScore,@Notes,@BoxartFileName,@GGCoverArtFileName," +
                                     "@FirstCriticScoreTimestamp,@DoNotRefreshDate,@DoNotRefreshAnything,@EligibilityChanged,@DelayContention,@AddedTimestamp);";
        var entity        = new MasterGameEntity(masterGame);
        var tagEntities   = masterGame.Tags.Select(x => new MasterGameHasTagEntity(masterGame, x));
        var excludeFields = new List <string>()
        {
            "TimeAdded"
        };

        await using var connection = new MySqlConnection(_connectionString);
        await connection.OpenAsync();

        await using var transaction = await connection.BeginTransactionAsync();

        await connection.ExecuteAsync(masterGameCreateSQL, entity, transaction);

        await connection.BulkInsertAsync <MasterGameHasTagEntity>(tagEntities, "tbl_mastergame_hastag", 500, transaction, excludeFields);

        await transaction.CommitAsync();
    }
Пример #2
0
        public async Task CreateMasterGame(MasterGame masterGame)
        {
            var entity = new MasterGameEntity(masterGame);

            using (var connection = new MySqlConnection(_connectionString))
            {
                await connection.ExecuteAsync(
                    "insert into tblmastergame(MasterGameID,GameName,EstimatedReleaseDate,ReleaseDate,OpenCriticID,CriticScore,MinimumReleaseYear,EligibilityLevel,YearlyInstallment,EarlyAccess,BoxartFileName) VALUES " +
                    "(@MasterGameID,@GameName,@EstimatedReleaseDate,@ReleaseDate,@OpenCriticID,@CriticScore,@MinimumReleaseYear,@EligibilityLevel,@YearlyInstallment,@EarlyAccess,@BoxartFileName);",
                    entity);
            }
        }
Пример #3
0
        public async Task CreateMasterGame(MasterGame masterGame)
        {
            var entity = new MasterGameEntity(masterGame);

            using (var connection = new MySqlConnection(_connectionString))
            {
                await connection.ExecuteAsync(
                    "insert into tbl_mastergame(MasterGameID,GameName,EstimatedReleaseDate,SortableEstimatedReleaseDate,ReleaseDate,OpenCriticID,CriticScore,MinimumReleaseDate," +
                    "EligibilityLevel,YearlyInstallment,EarlyAccess,FreeToPlay,ReleasedInternationally,ExpansionPack,BoxartFileName) VALUES " +
                    "(@MasterGameID,@GameName,@EstimatedReleaseDate,@SortableEstimatedReleaseDate,@ReleaseDate,@OpenCriticID,@CriticScore,@MinimumReleaseDate," +
                    "@EligibilityLevel,@YearlyInstallment,@EarlyAccess,@FreeToPlay,@ReleasedInternationally,@ExpansionPack,@BoxartFileName);",
                    entity);
            }
        }
Пример #4
0
    public async Task EditMasterGame(MasterGame masterGame)
    {
        string editSQL = "UPDATE tbl_mastergame SET " +
                         "GameName = @GameName, " +
                         "EstimatedReleaseDate = @EstimatedReleaseDate, " +
                         "MinimumReleaseDate = @MinimumReleaseDate, " +
                         "MaximumReleaseDate = @MaximumReleaseDate, " +
                         "EarlyAccessReleaseDate = @EarlyAccessReleaseDate, " +
                         "InternationalReleaseDate = @InternationalReleaseDate, " +
                         "AnnouncementDate = @AnnouncementDate, " +
                         "ReleaseDate = @ReleaseDate, " +
                         "OpenCriticID = @OpenCriticID, " +
                         "GGToken = @GGToken, " +
                         "CriticScore = @CriticScore, " +
                         "Notes = @Notes, " +
                         "BoxartFileName = @BoxartFileName, " +
                         "GGCoverArtFileName = @GGCoverArtFileName, " +
                         "FirstCriticScoreTimestamp = @FirstCriticScoreTimestamp, " +
                         "DoNotRefreshDate = @DoNotRefreshDate, " +
                         "DoNotRefreshAnything = @DoNotRefreshAnything, " +
                         "EligibilityChanged = @EligibilityChanged, " +
                         "DelayContention = @DelayContention " +
                         "WHERE MasterGameID = @MasterGameID;";

        string deleteTagsSQL = "delete from tbl_mastergame_hastag where MasterGameID = @MasterGameID;";

        var entity        = new MasterGameEntity(masterGame);
        var tagEntities   = masterGame.Tags.Select(x => new MasterGameHasTagEntity(masterGame, x));
        var excludeFields = new List <string>()
        {
            "TimeAdded"
        };

        await using var connection = new MySqlConnection(_connectionString);
        await connection.OpenAsync();

        await using var transaction = await connection.BeginTransactionAsync();

        await connection.ExecuteAsync(editSQL, entity, transaction);

        await connection.ExecuteAsync(deleteTagsSQL, new { masterGame.MasterGameID }, transaction);

        await connection.BulkInsertAsync <MasterGameHasTagEntity>(tagEntities, "tbl_mastergame_hastag", 500, transaction, excludeFields);

        await transaction.CommitAsync();
    }
Пример #5
0
        public async Task <Maybe <MasterGame> > GetMasterGame(Guid masterGameID)
        {
            using (var connection = new MySqlConnection(_connectionString))
            {
                MasterGameEntity masterGame = await connection.QuerySingleOrDefaultAsync <MasterGameEntity>("select * from tblmastergame where MasterGameID = @masterGameID", new { masterGameID });

                if (masterGame == null)
                {
                    return(Maybe <MasterGame> .None);
                }

                IEnumerable <MasterSubGameEntity> masterSubGames = await connection.QueryAsync <MasterSubGameEntity>("select * from tblmastersubgame where MasterGameID = @masterGameID", new { masterGameID });

                EligibilityLevel eligibilityLevel = await GetEligibilityLevel(masterGame.EligibilityLevel);

                MasterGame domain = masterGame.ToDomain(masterSubGames.Select(x => x.ToDomain()), eligibilityLevel);
                return(Maybe <MasterGame> .From(domain));
            }
        }