public async Task <Result <PersonModel> > SaveNewAsync(PersonForCreationModel model, string userId) { PersonEntity dbEntity = _mapper.Map <PersonForCreationModel, PersonEntity>(model); Result <PersonModel> result = await ValidateNewAsync(dbEntity); if (result.IsValid) { try { dbEntity.PostalCode = !string.IsNullOrEmpty(dbEntity.PostalCode) ? new string(dbEntity.PostalCode.Where(c => Char.IsNumber(c)).ToArray()) : dbEntity.PostalCode; _context.People.Add(dbEntity); await _context.SaveChangesAsync(); result.IsValid = true; } catch (Exception ex) { result.IsValid = false; result.Errors.Add(ex.Message + ex.StackTrace); throw; } finally { result.Value = _mapper.Map <PersonEntity, PersonModel>(dbEntity); } } return(result); }
public async Task <IActionResult> SaveNewItem([FromBody] PersonForCreationModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // Result <PersonModel> result = await _peopleService.SaveNewAsync(model, string.Empty); if (result.IsValid) { return(CreatedAtAction("GetModel", new { id = result.Value.Id }, result.Value)); } else { return(BadRequest(result)); } }