public async Task <IActionResult> TakeEsm(long id, Esm esm) { /*status:{ * '1': 'home', * '2': 'on way', * '3': 'in depot, but not home * } * esm_format:{ * esmId:'', * LastDepot:''//депо,которое принимает esm. * } */ if (id != esm.EsmId || esm.LastDepot == null) { return(BadRequest()); } var esmCurrent = await _context.Esm.FindAsync(esm.EsmId); if (esmCurrent == null || !(esmCurrent.LastDriver != null && esmCurrent.LastDriver == esm.LastDriver)) { return(BadRequest()); } if (esm.LastDepot != esmCurrent.HomeDepot) { esmCurrent.Status = 3; } else { esmCurrent.Status = 1; } esmCurrent.LastDepot = esm.LastDepot; _context.Entry(esmCurrent).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EsmExists(id)) { return(NotFound()); } else { //TODO:что тут? throw; } } return(Ok()); }
public async Task <IActionResult> GiveOutEsm(long id, Esm esm) { /*status:{ * '1': 'home', * '2': 'on way', * '3': 'in depot, but not home * } * esm_format:{ * esmId:'', * LastDriver:''//машинист, которому выдают esm. * }*/ if (id != esm.EsmId || esm.LastDriver == null) { return(BadRequest()); } var driver = await _context.Driver.FindAsync(esm.LastDriver); if (driver == null || driver.Esm.Count != 0) { return(BadRequest()); } var esmCurrent = await _context.Esm.FindAsync(esm.EsmId); if (esmCurrent == null || !(esmCurrent.LastDepot != null && esmCurrent.LastDepot == esm.LastDepot)) { return(BadRequest()); } esmCurrent.LastDriver = esm.LastDriver; esmCurrent.Status = 2; _context.Entry(esmCurrent).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EsmExists(id)) { return(NotFound()); } else { //что тут? throw; } } return(Ok()); }