public async Task <IActionResult> Create([Bind("Id,Startdate,Enddate,Reference,Invoice,Department,Costcenter,Account,ProjectCode,Description,Contractor,LaborPrice,MaterialPrice,StateProject,Userid,Comment,State,CreatedAt,UpdatedAt,Idteam")] Ots ots) { if (ModelState.IsValid) { _context.Add(ots); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(ots)); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Startdate,Enddate,Reference,Invoice,Department,Costcenter,Account,ProjectCode,Description,Contractor,LaborPrice,MaterialPrice,StateProject,Userid,Comment,State,CreatedAt,UpdatedAt,Idteam")] Ots ots) { if (id != ots.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(ots); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException ex) { foreach (var entry in ex.Entries) { if (entry.Entity is Ots) { var proposedValues = entry.CurrentValues; var databaseValues = entry.GetDatabaseValues(); foreach (var property in proposedValues.Properties) { var proposedValue = proposedValues[property]; var databaseValue = databaseValues[property]; // TODO: decide which value should be written to database proposedValues[property] = proposedValue; } // Refresh original values to bypass next concurrency check entry.OriginalValues.SetValues(databaseValues); _context.Update(ots); await _context.SaveChangesAsync(); } else { throw new NotSupportedException( "Don't know how to handle concurrency conflicts for " + entry.Metadata.Name); } } } return(RedirectToAction(nameof(Index))); } return(View(ots)); }