public async Task CompleteTransfer(string multisig, string asset, Guid transferId) { var entity = await _table.GetDataAsync(OffchainTransferEntity.ByRecord.GenerateId(multisig, asset)); if (entity?.TransferId == transferId) { var archive = OffchainTransferEntity.Archive.Create(entity); archive.Completed = true; await Task.WhenAll(_table.InsertAsync(archive), _table.DeleteAsync(entity)); } }
public async Task CloseChannel(string multisig, string asset, Guid channelId) { var current = (OffchainChannelEntity) await GetChannel(multisig, asset); if (current != null && current.ChannelId == channelId) { var archived = OffchainChannelEntity.Archived.Create(current); await _table.InsertAsync(archived); await _table.DeleteAsync(current); } }
/// <summary> /// Elimina un readmodel /// ?? gestire un flag di eliminato e memorizzare l'id dell'evento?? /// </summary> /// <param name="e"></param> /// <param name="id"></param> /// <param name="notify"></param> public async Task DeleteAsync(DomainEvent e, TKey id, bool notify = false) { string[] topics = null; if (NotifySubscribers && typeof(ITopicsProvider).IsAssignableFrom(typeof(TModel))) { var model = await _storage.FindOneByIdAsync(id).ConfigureAwait(false); if (model == null) { return; } topics = ((ITopicsProvider)model).GetTopics().ToArray(); } var result = await _storage.DeleteAsync(id).ConfigureAwait(false); if (!result.Ok) { throw new CollectionWrapperException(FormatCollectionWrapperExceptionMessage(string.Format("Delete error on {0} :: {1}", typeof(TModel).FullName, id), e)); } if (result.DocumentsAffected == 1 && ShouldSendNotification(e, notify)) { await _notifyToSubscribers.Send(ReadModelUpdatedMessage.Deleted <TModel, TKey>(id, topics)).ConfigureAwait(false); } }
public async Task CompleteClosingChannel(string multisig, string asset, Guid closingChannelId) { var closing = await GetClosingChannel(multisig, asset); if (closing?.ClosingChannelId == closingChannelId) { await Task.WhenAll( _table.InsertAsync(ClosingChannelEntity.Archived.Create(closing)), _table.DeleteAsync((ClosingChannelEntity)closing) ); } }
public async Task Clear() { await _storage.DeleteAsync(x => true); }
public async Task DeleteOutput(string transactionHash, int n) { await _table.DeleteAsync(o => o.TransactionHash == transactionHash && o.N == n); }
public async Task RemoveSpentOutputs(IEnumerable <IOutput> outputs) { var ids = outputs.Select(x => OutputEntity.GenerateId(x.TransactionHash, x.N)).ToArray(); await _storage.DeleteAsync(o => ids.Contains(o.BsonId)); }
public Task DeleteAsync(string assetId) { return(_storage.DeleteAsync(assetId)); }
public async Task RemoveCommitmentsOfChannel(string multisig, string asset, Guid channelId) { await _table.DeleteAsync(o => o.Multisig == multisig && o.AssetId == asset && o.ChannelId == channelId && o.Actual); }