public IActionResult PartiallyUpdateClient(int id, [FromBody] JsonPatchDocument <ClientForManipulation> patchDoc) { var clientFromRepo = _repo.GetClient(id); if (clientFromRepo == null) { var newClient = new ClientForManipulation(); patchDoc.ApplyTo(newClient); if (!TryValidateModel(newClient)) { return(BadRequest(ModelState)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var resultAction = AddClient(newClient); return(resultAction); } var clientDto = _mapper.Map <ClientForManipulation>(clientFromRepo); patchDoc.ApplyTo(clientDto); _mapper.Map(clientDto, clientFromRepo); _repo.UpdateClient(clientFromRepo); _repo.Save(); return(NoContent()); }
public IActionResult AddClient(ClientForManipulation client) { var clientEntity = _mapper.Map <Client>(client); _repo.AddClient(clientEntity); _repo.Save(); var clientForReturn = _mapper.Map <ClientForReturnDto>(clientEntity); return(CreatedAtRoute("GetClient", new { id = clientForReturn.Id }, clientForReturn)); }
public IActionResult UpdateClient(int id, ClientForManipulation client) { var clientFromRepo = _repo.GetClient(id); //upsert if (clientFromRepo == null) { var resultAction = AddClient(client); return(resultAction); } _mapper.Map(client, clientFromRepo); _repo.UpdateClient(clientFromRepo); _repo.Save(); return(NoContent()); }