using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Bank_Account; using Bank_Account.Models; namespace Bank_Account.Controllers { [Route("api/[controller]")] [ApiController] public class BankMembersController : ControllerBase { private readonly BankAccountContext _context; public BankMembersController(BankAccountContext context) { _context = context; } // GET: api/BankMembers [HttpGet] public async Task>> GetBankMembers() { return await _context.BankMembers.ToListAsync(); } // GET: api/BankMembers/5 [HttpGet("{id}")] public async Task> GetBankMember(long id) { var bankMember = await _context.BankMembers.FindAsync(id); if (bankMember == null) { return NotFound(); } return bankMember; } // PUT: api/BankMembers/5 // To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://go.microsoft.com/fwlink/?linkid=2123754. [HttpPut("{id}")] public async Task PutBankMember(long id, BankMember bankMember) { if (id != bankMember.MemberID) { return BadRequest(); } _context.Entry(bankMember).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BankMemberExists(id)) { return NotFound(); } else { throw; } } return NoContent(); } // POST: api/BankMembers // To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://go.microsoft.com/fwlink/?linkid=2123754. // The Bank Admin should to be able to create new users. Each user will have Username(max length 10 chars), First Name, and Last Name. // Only the Username “Admin” should be allowed to create new users. [HttpPost] public async Task> PostBankMember(BankMember bankMember) { _context.BankMembers.Add(bankMember); await _context.SaveChangesAsync(); return CreatedAtAction("GetBankMember", new { id = bankMember.MemberID }, bankMember); } // DELETE: api/BankMembers/5 [HttpDelete("{id}")] public async Task> DeleteBankMember(long id) { var bankMember = await _context.BankMembers.FindAsync(id); if (bankMember == null) { return NotFound(); } _context.BankMembers.Remove(bankMember); await _context.SaveChangesAsync(); return bankMember; } private bool BankMemberExists(long id) { return _context.BankMembers.Any(e => e.MemberID == id); } } }