public async Task<IHttpActionResult> PostTransaction(Transaction transaction) { if (!ModelState.IsValid) { return BadRequest(ModelState); } db.Transactions.Add(transaction); db.LibraryComponents.Load(); try { await db.SaveChangesAsync(); } catch (DbEntityValidationException ex) { StringBuilder sb = new StringBuilder(); ex.EntityValidationErrors.ToList().ForEach(entityValidation => { entityValidation.ValidationErrors.ToList().ForEach(validation => sb.Append(string.Concat(validation.PropertyName, " - ", validation.ErrorMessage))); }); _log.Error("{0}{1}Validation errors:{1}{2}", ex, Environment.NewLine, sb.ToString()); throw; } catch (Exception ex) { BadRequest(ex.Message); } return CreatedAtRoute("DefaultApi", new { id = transaction.TransactionId }, transaction); }
public async Task<IHttpActionResult> PutTransaction(int id, Transaction transaction) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != transaction.TransactionId) { return BadRequest(); } db.Entry(transaction).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TransactionExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }