Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public PurgeWorker(PurgeWorkerData data,
                    IPurgeWorkerDataSaver dataSaver)
 {
     _data      = data;
     _dataSaver = dataSaver;
 }