public async Task <DatabaseModel.OfferTransaction> InsertAsync(DatabaseModel.OfferTransaction offerTransaction, ITransactionWrapper transactionWrapper = null) { var query = _offerTransationQueries.InsertReturnsId(offerTransaction); int id; if (transactionWrapper != null) { id = await transactionWrapper.ExecuteSqlCommand <int>(query); } else { id = (int)await _databaseConnection.ExecuteScalarAsync(query); } return(new DatabaseModel.OfferTransaction( offerTransaction.UserId, offerTransaction.BotId, offerTransaction.TotalValue, offerTransaction.IsDeposit, offerTransaction.SteamOfferId, offerTransaction.Accepted, id )); }
internal DatabaseSession(IDatabaseCommandFactory databaseCommandFactory, ITransactionWrapper transactionWrapper, IDatabaseReaderFactory databaseReaderFactory, IConnectionHandler connectionHandler) { _databaseCommandFactory = databaseCommandFactory; _transactionWrapper = transactionWrapper; _databaseReaderFactory = databaseReaderFactory; _connectionHandler = connectionHandler; }
/// <summary> /// Create a new instance of <see cref="UnitOfWorkEntry"/> /// </summary> /// <param name="transWrapper"></param> /// <param name="disposeAction"></param> /// <param name="manualCommit"></param> public UnitOfWorkEntry(ITransactionWrapper transWrapper, Action disposeAction, bool manualCommit = false) { transWrapper.CheckNull(nameof(transWrapper)); InternalTransaction = transWrapper; AddDisposableAction("_unitOfWorkDisposeAction", disposeAction ?? DefaultDisposeAction); Committed = false; ManualCommit = manualCommit; }
public void DeleteAttachment(IUnitOfWork unitOfWork, Attachment attachment, ITransactionWrapper tran) { if (!string.IsNullOrWhiteSpace(attachment.GenFileName)) { var genAction = new GenericCatchErrorAction(() => FileService.DeleteFile(attachment.GenFileName) , $"Error while remove file in delete method, path: {attachment.GenFileName}"); tran.RegisterAfterCommitAction(genAction); } unitOfWork.Attachments.MarkForDelete(attachment); }
private async Task UpdateItemsTable(ITransactionWrapper transactionWrapper, List <DatabaseModel.Item> items, bool isDeposit) { if (isDeposit) { await _itemRepoService.InsertAsync(items, transactionWrapper); } else { await _itemRepoService.DeleteAsync(items); } }
public void CleanTransaction() { _isRolledBack = false; ScopedUnitOfWorkConfiguration.LoggingAction(this + "clean transaction requested, transaction exists: " + (Transaction != null)); if (Transaction != null) { Transaction.Dispose(); Transaction = null; } }
public async Task InsertAsync(List <DatabaseModel.Item> items, ITransactionWrapper transactionWrapper = null) { var query = _itemQueries.InsertRange(items); if (transactionWrapper != null) { await transactionWrapper.ExecuteSqlCommand(query); return; } await _databaseConnection.ExecuteNonQueryAsync(query); }
public CoinFlipServiceTest() { _fakedHashService = A.Fake <IHashService>(); _fakedRandomService = A.Fake <IRandomService>(); var fakedRepoServcieFacotry = A.Fake <IRepoServiceFactory>(); _fakedCoinFlipMatchRepoService = A.Fake <ICoinFlipMatchRepoService>(); _fakedUserRepoService = A.Fake <IUserRepoService>(); _fakedGameModeRepoSerivce = A.Fake <IGameModeRepoService>(); _fakedTransactionFactory = A.Fake <ITransactionFactory>(); _fakedTransactionWrapper = A.Fake <ITransactionWrapper>(); _fakedBetService = A.Fake <IBetService>(); _fakedItemService = A.Fake <IItemService>(); _fakedJackpotSettingRepoService = A.Fake <IJackpotSettingRepo>(); _fakedMongoDbJackpotRepoService = A.Fake <IMongoJackpotRepoService>(); _fakedMongoDbPreHashRepoService = A.Fake <IMongoPreHashRepoService>(); A.CallTo(() => _fakedTransactionFactory.BeginTransaction()).Returns(_fakedTransactionWrapper); A.CallTo(() => fakedRepoServcieFacotry.CoinFlipMatchRepoService).Returns(_fakedCoinFlipMatchRepoService); A.CallTo(() => fakedRepoServcieFacotry.GameModeRepoService).Returns(_fakedGameModeRepoSerivce); A.CallTo(() => fakedRepoServcieFacotry.UserRepoService).Returns(_fakedUserRepoService); A.CallTo(() => fakedRepoServcieFacotry.JackpotSettingRepo).Returns(_fakedJackpotSettingRepoService); _defaultSetting = new CreateCoinFlipSettingModel { AllowCsgo = true, AllowPubg = false, Diff = 1000, MaxItem = 10, MinItem = 0, PreHash = "ranomdHash" }; _coinFlipService = new CoinFlipService ( _fakedHashService, _fakedRandomService, fakedRepoServcieFacotry, _fakedTransactionFactory, _fakedBetService, _fakedItemService, _fakedMongoDbJackpotRepoService, A.Dummy <ICoinFlipHubConnections>(), _fakedMongoDbPreHashRepoService, A.Dummy <IDiscordService>() ); //TODO CHECK ALL DUMMY TEST OBJECTS! }
public async Task <DatabaseModel.Bet> InsertAsync(DatabaseModel.Bet bet, ITransactionWrapper transactionWrapper = null) { var query = _betQueries.InsertReturnsId(bet); if (transactionWrapper != null) { var idFromTrans = await transactionWrapper.ExecuteSqlCommand <int>(query); return(new DatabaseModel.Bet(bet.UserId, bet.MatchId, bet.GameModeId, bet.Created, idFromTrans)); } var id = (int)await _databaseConnection.ExecuteScalarAsync(query); return(new DatabaseModel.Bet(bet.UserId, bet.MatchId, bet.GameModeId, bet.Created, id)); }
/// <summary> /// Initializes a new instance of the <see cref="FileFsClient"/> class. /// </summary> /// <param name="fileRepository">File repository instance.</param> /// <param name="directoryRepository">Directory repository instance.</param> /// <param name="entryRepository">Entry repository instance.</param> /// <param name="externalFileManager">External file manager instance.</param> /// <param name="optimizer">Optimizer instance.</param> /// <param name="transactionWrapper">Transaction wrapper instance.</param> /// <param name="storageOperationLocker">Storage operation locker instance.</param> public FileFsClient( IFileRepository fileRepository, IDirectoryRepository directoryRepository, IEntryRepository entryRepository, IExternalFileManager externalFileManager, IStorageOptimizer optimizer, ITransactionWrapper transactionWrapper, IStorageOperationLocker storageOperationLocker) { _fileRepository = fileRepository; _directoryRepository = directoryRepository; _entryRepository = entryRepository; _externalFileManager = externalFileManager; _optimizer = optimizer; _transactionWrapper = transactionWrapper; _storageOperationLocker = storageOperationLocker; }
private async Task <DatabaseModel.OfferTransaction> InsertTransactionOfferAndItemsInTransactionOffer ( ITransactionWrapper transactionWrapper, DatabaseModel.OfferTransaction offerTransactions, List <DatabaseModel.ItemInOfferTransaction> itemsInOffer ) { var offerInsertResponse = await _offerRepoService.InsertAsync(offerTransactions, transactionWrapper); foreach (var itemInOfferTransaction in itemsInOffer) { itemInOfferTransaction.OfferTransactionId = offerInsertResponse.Id; } await _itemInOfferTransactionRepoService.InsertAsync(itemsInOffer, transactionWrapper); transactionWrapper?.Commit(); return(offerInsertResponse); }
private static void ApplyAction(UowAction action, ITransactionWrapper transaction) { switch (action.ActionType) { case UowActionType.Save: transaction.Save(action.Dao, action.BusinessObjectType); break; case UowActionType.DeleteAll: transaction.DeleteAll(action.BusinessObjectType); break; case UowActionType.Delete: transaction.Delete(action.Id, action.BusinessObjectType); break; default: throw new ArgumentOutOfRangeException(); } }
public IConnectionHandler GetHandler(IDbCommand command, ITransactionWrapper transactionWrapper) { _connection = command.Connection; _transactionWrapper = transactionWrapper; return this; }
public OfferTransactionServiceTest() { var fakedItemDescriptionRepoService = A.Fake <IItemDescriptionRepoService>(); var fakedTransactionFactory = A.Fake <ITransactionFactory>(); var fakedRepoServiceFactory = A.Fake <IRepoServiceFactory>(); _fakedItemInOfferTransactionRepoService = A.Fake <IItemInOfferTransactionRepoService>(); _fakedOfferTranascrionRepoService = A.Fake <IOfferTranascrionRepoService>(); _fakedUserRepoService = A.Fake <IUserRepoService>(); _fakedBotRepoService = A.Fake <IBotRepoService>(); _fakedItemRepoService = A.Fake <IItemRepoService>(); _fakedTransactionWrapper = A.Fake <ITransactionWrapper>(); A.CallTo(() => fakedRepoServiceFactory.ItemInOfferTransactionRepoService).Returns(_fakedItemInOfferTransactionRepoService); A.CallTo(() => fakedRepoServiceFactory.OfferTranascrionRepoService).Returns(_fakedOfferTranascrionRepoService); A.CallTo(() => fakedRepoServiceFactory.UserRepoService).Returns(_fakedUserRepoService); A.CallTo(() => fakedRepoServiceFactory.BotRepoService).Returns(_fakedBotRepoService); A.CallTo(() => fakedRepoServiceFactory.ItemDescriptionRepoService).Returns(fakedItemDescriptionRepoService); A.CallTo(() => fakedRepoServiceFactory.ItemRepoService).Returns(_fakedItemRepoService); A.CallTo(() => fakedTransactionFactory.BeginTransaction()).Returns(_fakedTransactionWrapper); _offerMinmalInfo = new OfferStatusRequest { Bot = new Bot { Username = "******", SteamId = "botSteamId" }, SteamId = "userSteamId", StatusCode = int.MinValue, StatusMessage = "", OfferSend = new OfferStatusOffer { SteamOffer = new SteamOffer { ItemsToGive = { new Item { AppId = 730, ContextId = "2", AssetId = "1", MarketHashName = "SomeWeapon1" }, new Item { AppId = 730, ContextId = "2", AssetId = "2", MarketHashName = "SomeWeapon1" }, new Item { AppId = 730, ContextId = "2", AssetId = "3", MarketHashName = "SomeWeapon2" }, new Item { AppId = 730, ContextId = "2", AssetId = "4", MarketHashName = "SomeWeapon3" }, new Item { AppId = 730, ContextId = "2", AssetId = "5", MarketHashName = "SomeWeapon4" }, new Item { AppId = 730, ContextId = "2", AssetId = "6", MarketHashName = "SomeWeapon2" }, }, ItemsToReceive = { new Item { AppId = 730, ContextId = "2", AssetId = "11", MarketHashName = "SomeWeapon1" }, new Item { AppId = 730, ContextId = "2", AssetId = "12", MarketHashName = "SomeWeapon1" }, new Item { AppId = 730, ContextId = "2", AssetId = "13", MarketHashName = "SomeWeapon2" }, new Item { AppId = 730, ContextId = "2", AssetId = "14", MarketHashName = "SomeWeapon3" }, new Item { AppId = 730, ContextId = "2", AssetId = "15", MarketHashName = "SomeWeapon4" }, new Item { AppId = 730, ContextId = "2", AssetId = "16", MarketHashName = "SomeWeapon2" }, }, } } }; var someWeapon1 = new DatabaseModel.ItemDescription("SomeWeapon1", new decimal(11.22), "720", "2", "imgUrl", true, 1); var someWeapon2 = new DatabaseModel.ItemDescription("SomeWeapon2", new decimal(45.5), "720", "2", "imgUrl", true, 2); var someWeapon3 = new DatabaseModel.ItemDescription("SomeWeapon3", new decimal(78.00), "720", "2", "imgUrl", true, 3); var someWeapon4 = new DatabaseModel.ItemDescription("SomeWeapon4", new decimal(5.47), "720", "2", "imgUrl", true, 4); A.CallTo(() => fakedItemDescriptionRepoService.FindAsync("SomeWeapon1")).Returns(someWeapon1); A.CallTo(() => fakedItemDescriptionRepoService.FindAsync("SomeWeapon2")).Returns(someWeapon2); A.CallTo(() => fakedItemDescriptionRepoService.FindAsync("SomeWeapon3")).Returns(someWeapon3); A.CallTo(() => fakedItemDescriptionRepoService.FindAsync("SomeWeapon4")).Returns(someWeapon4); A.CallTo(() => fakedItemDescriptionRepoService.FindAsync(A <List <string> > ._)).Returns(new List <DatabaseModel.ItemDescription> { someWeapon1, someWeapon2, someWeapon3, someWeapon4, }); _offerService = new OfferService(fakedRepoServiceFactory, fakedTransactionFactory, A.Dummy <ILogServiceFactory>()); }
public async Task <DatabaseModel.JackpotSetting> InsertAsync(DatabaseModel.JackpotSetting setting, ITransactionWrapper transactionWrapper) { var cn = transactionWrapper.SqlConnection; var transaction = transactionWrapper.Transaction; var insertedId = await cn.InsertAsync(setting, transaction); setting.Id = insertedId; return(setting); }
/// <inheritdoc /> public IUnitOfWorkEntry Register(ITransactionWrapper transWrapper, UnitOfWorkTypes type = UnitOfWorkTypes.Required, IsolationLevel?isolationLevel = null) => NullUnitOfWorkEntry.Instance;
public Attachment CreateAttachment(IUnitOfWork unitOfWork, int userId, string fileName, byte[] content, ITransactionWrapper tran) { var saveFileResult = FileService.SaveFileWithUniqueName(fileName, content); var genAction = new GenericCatchErrorAction(() => FileService.DeleteFile(saveFileResult.GenFileName) , $"Error while remove file in save method, path {saveFileResult.GenFileName}"); tran.RegisterAfterRollbackAction(genAction); var attachment = unitOfWork.Attachments.CreateEmpty(); attachment.CreatedByUserId = userId; attachment.CreatedDate = DateTime.Now; attachment.ContentType = MimeTypeResolver.Resolve(fileName); attachment.FileSize = content.Length; attachment.FileName = fileName; attachment.GenFileName = saveFileResult.GenFileName; return(attachment); }
public IUnitOfWorkEntry CreateUnitOfWork(ITransactionWrapper transWrapper, Action disposableAction, bool manualCommit, UnitOfWorkTypes types = UnitOfWorkTypes.Required, IsolationLevel?level = null) => HoldingManager.CreateUnitOfWork(transWrapper, disposableAction, manualCommit, types, level);
public void SetTransaction(ITransactionWrapper transaction) { Transaction = transaction; }
/// <inheritdoc /> public IUnitOfWorkEntry CreateUnitOfWork(ITransactionWrapper transWrapper, UnitOfWorkTypes types = UnitOfWorkTypes.Required, IsolationLevel?level = null) => CurrentStrategy.CreateUnitOfWork(transWrapper, types, level);
/// <inheritdoc /> public IUnitOfWorkEntry CreateUnitOfWork(ITransactionWrapper transWrapper, Action disposedAction, bool manualCommit, UnitOfWorkTypes types = UnitOfWorkTypes.Required, IsolationLevel?level = null) => CurrentStrategy.CreateUnitOfWork(transWrapper, disposedAction, manualCommit, types, level);
public async Task <DatabaseModel.CoinFlip> InsertAsync(DatabaseModel.CoinFlip coinFlip, ITransactionWrapper transactionWrapper) { var cn = transactionWrapper.SqlConnection; var transaction = transactionWrapper.Transaction; var insertedId = await cn.InsertAsync(coinFlip, transaction); coinFlip.Id = insertedId; return(coinFlip); }
public IUnitOfWorkEntry CreateUnitOfWork(ITransactionWrapper transWrapper, UnitOfWorkTypes types = UnitOfWorkTypes.Required, IsolationLevel?level = null) => HoldingManager.CreateUnitOfWork(transWrapper, types, level);
public DatabaseCommandProvider(IDatabaseConnectionProvider databaseConnectionProvider, ITransactionWrapper transactionWrapper) { _databaseConnectionProvider = databaseConnectionProvider; _transactionWrapper = transactionWrapper; }