public async Task <DbAcquirement> UpdateStatus(Guid acquirementId, EDbAcquirementStatus newStatus) { const string procedure = "spUpdateAcquirementStatus"; using (var conn = new SqlConnection(_connectionString)) { var updatedAcquirement = (await conn.QueryAsync <DbAcquirement>(procedure, new { AcquirementId = acquirementId, NewStatus = newStatus }, commandType: CommandType.StoredProcedure)).SingleOrDefault(); return(updatedAcquirement); } }
public async Task Create(Guid id, DateTime acquirementDateUtc, EDbAcquirementStatus status, string isbn, int[] copyNumbers, Guid receivingId, Guid givingId) { const string queryAcquirement = @"INSERT INTO ItemAcquirements(Id, AcquirementDateUtc, Status, Item_ISBN, ReceivingLibrary_Id, GivingLibrary_Id) VALUES(@id, @acquirementDateUtc, @status, @isbn, @receivingId, @givingId)"; const string queryCopy = @"INSERT INTO AcquirementCopies(ItemAcquirement_Id, ItemCopy_Number, ItemCopy_ISBN) VALUES(@id, @copyNr, @isbn)"; using (var conn = new SqlConnection(_connectionString)) { conn.Open(); using (var trans = conn.BeginTransaction()) { try { await conn.ExecuteAsync(queryAcquirement, new { id, acquirementDateUtc, status, isbn, receivingId, givingId }, trans); foreach (var copyNr in copyNumbers) { await conn.ExecuteAsync(queryCopy, new { id, copyNr, isbn }, trans); } trans.Commit(); } catch (Exception) { trans.Rollback(); throw; } } } }