private IActionResult SavePersonAsync(Person item) { //Check that Value/Name is unique if (_context.Person.AsNoTracking().FirstOrDefault(x => x.EmailAddress == item.EmailAddress && x.PersonId != item.PersonId) != null) { return(BadRequest("Duplicate entry/value found.")); } var exiting = _context.Person.FirstOrDefault(x => x.PersonId == item.PersonId); if (exiting == null) { //ADD HelperExtensions.ClearIdentityValue(ref item); HelperExtensions.ClearNullableInts(ref item); _context.Person.Add(item); return(Created(item)); } else { //UPDATE _context.Entry(exiting).CurrentValues.SetValues(item); return(Updated(exiting)); } }
private IActionResult SaveVoluntaryMethodologyAsync(VoluntaryMethodology item) { //Check that Value/Name is unique if (_context.VoluntaryMethodology.AsNoTracking().FirstOrDefault(x => x.Value == item.Value && x.VoluntaryMethodologyId != item.VoluntaryMethodologyId) != null) { return(BadRequest("Duplicate entry/value found.")); } var exiting = _context.VoluntaryMethodology.FirstOrDefault(x => x.VoluntaryMethodologyId == item.VoluntaryMethodologyId); if (exiting == null) { //ADD HelperExtensions.ClearIdentityValue(ref item); HelperExtensions.ClearNullableInts(ref item); _context.VoluntaryMethodology.Add(item); return(Created(item)); } else { //UPDATE _context.Entry(exiting).CurrentValues.SetValues(item); return(Updated(exiting)); } }
public async Task <IActionResult> Post([FromBody] Question question) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var exiting = _context.Questions.FirstOrDefault(x => x.Id == question.Id || (x.Key == question.Key && x.Goal.Id == question.Goal.Id)); if (exiting == null) { //ADD HelperExtensions.ClearIdentityValue(question); HelperExtensions.ClearNullableInts(question); _context.Questions.Add(question); await _context.SaveChangesAsync(); return(Created(question)); } else { //UPDATE //_context.Entry(exiting).CurrentValues.SetValues(question); if (exiting.Value != question.Value) { exiting.Value = question.Value; await _context.SaveChangesAsync(); } return(Updated(exiting)); } }