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(); }
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); } }
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); } }
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(); }
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)); } }