diff --git a/Controllers/TrialController.cs b/Controllers/TrialController.cs index c2e0b08..5d4e205 100644 --- a/Controllers/TrialController.cs +++ b/Controllers/TrialController.cs @@ -1,7 +1,5 @@ -using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Authorization; -using System.Security.Claims; using rockfishCore.Models; using System.Linq; using System.Threading.Tasks; @@ -27,37 +25,14 @@ namespace rockfishCore.Controllers //Fetch list of trial requests - [HttpGet("requests")] - public ActionResult GetRequests() - { - var ret=ct.trialre - - } - - - - - - /////////////////////////////////////////////////////////// - // STORED Trial KEY CRUD ROUTES - // - - //case 3233 Get api/Trial/list a list of generated Trials [HttpGet("list")] - public IEnumerable GetList() + public async Task GetRequestsAsync() { - var res = from c in ct.Trial.OrderByDescending(c => c.DtCreated) - select new dtoTrialListItem - { - id = c.Id, - created = c.DtCreated, - regto = c.RegTo, - fetched = c.Fetched, - trial = (c.CustomerId==0) - }; - return res.ToList(); + var ret = await ct.TrialRequest.AsNoTracking().OrderByDescending(z => z.DtRequested).ToListAsync(); + return Ok(ret); } + //case 3233 GET: api/Trial/5 [HttpGet("{id}")] public async Task GetTrial([FromRoute] long id) @@ -67,45 +42,12 @@ namespace rockfishCore.Controllers return BadRequest(ModelState); } - var l = await ct.Trial.SingleOrDefaultAsync(m => m.Id == id); - - if (l == null) + var ret = await ct.TrialRequest.AsNoTracking().SingleOrDefaultAsync(m => m.Id == id); + if (ret == null) { return NotFound(); } - string customerName = ""; - - if (l.CustomerId != 0) - { - if (ct.Customer.Any(e => e.Id == l.CustomerId)) - { - - var cust = await ct.Customer - .Select(r => new { r.Id, r.Name }) - .Where(r => r.Id == l.CustomerId) - .FirstAsync(); - customerName=cust.Name; - } - else - { - customerName = "< Customer " + l.CustomerId.ToString() + " not found (deleted?) >"; - } - } - - var ret = new - { - regTo = l.RegTo, - customerName = customerName, - dtcreated = l.DtCreated, - email = l.Email, - code = l.Code, - fetched = l.Fetched, - dtfetched = l.DtFetched, - fetchFrom = l.FetchFrom, - key = l.Key - }; - return Ok(ret); } @@ -114,42 +56,31 @@ namespace rockfishCore.Controllers public async Task DeleteTrial([FromRoute] long id) { if (!ModelState.IsValid) - { return BadRequest(ModelState); - } - - var rec = await ct.Trial.SingleOrDefaultAsync(m => m.Id == id); + var rec = await ct.TrialRequest.SingleOrDefaultAsync(m => m.Id == id); if (rec == null) - { return NotFound(); - } - - ct.Trial.Remove(rec); + ct.TrialRequest.Remove(rec); await ct.SaveChangesAsync(); - return Ok(rec); } - // PUT: api/Trial/5/true - //Update a Trial and set it's fetched property only - //used by client to make a Trial fetchable or not ad-hoc - [HttpPut("fetched/{id}/{isFetched}")] - public async Task PutTrialFetched([FromRoute] long id, [FromRoute] bool isFetched) + // PUT: api/TrialRequest/5 + [HttpPut("{id}")] + public async Task PutTrialRequest([FromRoute] long id, [FromBody] TrialRequest TrialRequest) { if (!ModelState.IsValid) { return BadRequest(ModelState); } - var rec = await ct.Trial.SingleOrDefaultAsync(m => m.Id == id); - if (rec == null) + if (id != TrialRequest.Id) { - return NotFound(); + return BadRequest(); } - rec.Fetched = isFetched; - ct.Entry(rec).State = EntityState.Modified; + ct.Entry(TrialRequest).State = EntityState.Modified; try { @@ -157,7 +88,7 @@ namespace rockfishCore.Controllers } catch (DbUpdateConcurrencyException) { - if (!TrialExists(id)) + if (!await TrialRequestExistsAsync(id)) { return NotFound(); } @@ -173,24 +104,13 @@ namespace rockfishCore.Controllers - private bool TrialExists(long id) + + private async Task TrialRequestExistsAsync(long id) { - return ct.Trial.Any(e => e.Id == id); - } - - //===================== UTILITY ============= - private string GetRFAuthorizedUserStamp() - { - foreach (Claim c in User.Claims) - { - if (c.Type == "id") - { - return "RFID" + c.Value; - } - } - return "RFID unknown"; + return await ct.TrialRequest.AnyAsync(e => e.Id == id); } + //------------------------------------------------------ }//eoc