This commit is contained in:
2020-06-09 23:39:02 +00:00
parent 25c9c2661e
commit 67b6985a5b

View File

@@ -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<dtoTrialListItem> GetList()
public async Task<IActionResult> 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<IActionResult> 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 = "<TRIAL>";
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<IActionResult> 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<IActionResult> PutTrialFetched([FromRoute] long id, [FromRoute] bool isFetched)
// PUT: api/TrialRequest/5
[HttpPut("{id}")]
public async Task<IActionResult> 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<bool> 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