public async Task ReverseLastScrap(PrototypeScrapResourceParameter parameter) { var last = await _context.Scraps .AsNoTracking() .Where(x => x.ShiftReportId == parameter.ShiftReportId) .Where(x => x.Part == parameter.Part) .OrderBy(x => x.ScrapId) .LastOrDefaultAsync() .ConfigureAwait(false); if (last == null) { return; } await ReverseScrap(last.ScrapId).ConfigureAwait(false); }
public async Task <IActionResult> ReverseLastScrap(PrototypeScrapResourceParameter parameter) { try { await _service.ReverseLastScrap(parameter).ConfigureAwait(false); var scrapLists = await _context.Scraps .Where( x => x.ShiftReportId == parameter.ShiftReportId && x.Part == parameter.Part ) .ToListAsync() .ConfigureAwait(false); return(Ok(scrapLists)); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <dynamic> AddScrap(PrototypeScrapResourceParameter parameter) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } await using var transaction = await _context.Database .BeginTransactionAsync() .ConfigureAwait(false); try { var entity = new Scrap { ShiftReportId = parameter.ShiftReportId, Qty = 1, Code = "9999", // for now this is a generic scrap code Timestamp = DateTime.Now, Part = parameter.Part, Comment = parameter.Comment, SampleOrder = parameter.SampleOrder }; await _context.Scraps.AddAsync(entity).ConfigureAwait(false); await transaction.CommitAsync().ConfigureAwait(false); await _context.SaveChangesAsync().ConfigureAwait(false); return(entity); } catch (Exception e) { await transaction.RollbackAsync().ConfigureAwait(false); throw new Exception(e.Message); } }