public async Task Update(ISqlTransactionHandler transactionHandler, PurgeWorkerData purgeWorkerData) { if (purgeWorkerData.Manager.GetState(purgeWorkerData) == DataState.Updated) { await _providerFactory.EstablishTransaction(transactionHandler, purgeWorkerData); using (DbCommand command = transactionHandler.Connection.CreateCommand()) { command.CommandText = "[bll].[UpdatePurgeWorker]"; command.CommandType = CommandType.StoredProcedure; command.Transaction = transactionHandler.Transaction.InnerTransaction; IDataParameter timestamp = DataUtil.CreateParameter(_providerFactory, "timestamp", DbType.DateTime2); timestamp.Direction = ParameterDirection.Output; command.Parameters.Add(timestamp); DataUtil.AddParameter(_providerFactory, command.Parameters, "purgeWorkerId", DbType.Guid, DataUtil.GetParameterValue(purgeWorkerData.PurgeWorkerId)); DataUtil.AddParameter(_providerFactory, command.Parameters, "status", DbType.Int16, DataUtil.GetParameterValue(purgeWorkerData.Status)); await command.ExecuteNonQueryAsync(); purgeWorkerData.UpdateTimestamp = DateTime.SpecifyKind((DateTime)timestamp.Value, DateTimeKind.Utc); } } }
public async Task <IPurgeWorker> Get(ISettings settings, Guid id) { IPurgeWorker result = null; PurgeWorkerData data = await _dataFactory.Get(_settingsFactory.CreateData(settings), id); if (data != null) { result = new PurgeWorker(data, _dataSaver); } return(result); }
public PurgeWorker(PurgeWorkerData data, IPurgeWorkerDataSaver dataSaver) { _data = data; _dataSaver = dataSaver; }