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;
                    }
                }
            }
        }