using System; using System.Linq; using Microsoft.AspNetCore.Mvc; using Dough.Models.Database; using Dough.Models; using Dough.Models.Exceptions; using Dough.Models.Results; namespace Dough.Controllers { public class TransactionsController : BaseController { private readonly MainDbContext _context; public TransactionsController(MainDbContext context) { _context = context; } [HttpGet] public ActionResult GetTransactions() { var transactions = _context.Transactions.Where(c => !c.Hidden); return Ok(transactions.ToList()); } [HttpPost("add")] public ActionResult AddTransaction(Transaction data) { data.SetBaseProperties(); try { data.Validate(); } catch (Exception e) { Console.WriteLine(e); if (e is ModelValidationException mve) return BadRequest(mve.ErrorResult); return BadRequest(new ErrorResult()); } _context.Transactions.Add(data); _context.SaveChanges(); return Ok(); } [HttpPost("update")] public ActionResult UpdateTransaction(Transaction data) { try { data.Validate(); } catch (Exception e) { Console.WriteLine(e); if (e is ModelValidationException mve) return BadRequest(mve.ErrorResult); return BadRequest(new ErrorResult()); } var transaction = _context.Transactions.SingleOrDefault(data.Id); transaction.Update(data); _context.SaveChanges(); return Ok(data); } [HttpDelete("delete")] public ActionResult DeleteTransaction(Transaction data) { if (data.Id == default) return BadRequest(new ErrorResult()); _context.Transactions.Remove(data); _context.SaveChanges(); return Ok(); } } }