public async Task <IActionResult> UpdateContactAsync(UpdateContactViewModel model) { try { ContactDto contact = new ContactDto { Id = model.Contact.Id, Name = model.Contact.Name, TelephoneNumber1 = model.Contact.TelephoneNumber1, TelephoneNumber2 = model.Contact.TelephoneNumber2, Address = model.Contact.Address, Email = model.Contact.Email, LegalOrNaturalPerson = model.Contact.LegalOrNaturalPerson, Profession = model.Contact.Profession, CompanyId = model.Contact.CompanyId }; await contactService.UpdateAsync(contact); return(RedirectToAction("ContactsList", "Contact")); } catch (Exception ex) { ErrorViewModel errorModel = new ErrorViewModel(); errorModel.ErrorMessage = ex.Message.ToString(); return(View("Views/Shared/Error.cshtml", errorModel)); } }
public IHttpActionResult Put(UpdateContactViewModel modifiedModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _service.Update(_mapper.Map <Contact>(modifiedModel)); return(Ok()); }
public async Task <ActionResult <Contact> > UpdateOrInsertContact([FromRoute] Guid contactId, UpdateContactViewModel model) { // If we do not want to Upsert functionality then return NotFound //if (!await this.service.IsExistingAsync(contactId)) //{ // return NotFound(); //} if (!await this.service.IsExistingAsync(contactId)) { // Create var newContact = new Contact() { Id = contactId, Address = model.Address, Name = model.Name }; await this.service.AddAsync(newContact); return(CreatedAtRoute(nameof(ContactsController.GetContactById), new { contactId = newContact.Id }, new ContactViewModel() { Id = newContact.Id, Name = newContact.Name, Address = newContact.Address })); } else { // Update var contact = new Contact() { Id = contactId, Name = model.Name, Address = model.Address }; await this.service.UpdateAsync(contact); return(NoContent()); } }
public async Task <ActionResult <ContactViewModel> > PatchOrInsertContact([FromRoute] Guid contactId, JsonPatchDocument <UpdateContactViewModel> patchDocument) { // If we do not want to Upsert functionality then return NotFound //if (!await this.service.IsExistingAsync(contactId)) //{ // return NotFound(); //} if (!await this.service.IsExistingAsync(contactId)) { // insert var updateViewModel = new UpdateContactViewModel(); patchDocument.ApplyTo(updateViewModel, ModelState); // to get the correct ModelState, install Microsoft.AspNetCore.Mvc.NewtonsoftJson if (!TryValidateModel(updateViewModel)) { return(ValidationProblem(ModelState)); } var newContact = new Contact() { Id = contactId, Name = updateViewModel.Name, Address = updateViewModel.Address }; await this.service.AddAsync(newContact); var viewModel = new ContactViewModel() { Id = newContact.Id, Name = newContact.Name, Address = newContact.Address }; return(CreatedAtRoute(nameof(ContactsController.GetContactById), new { contactId = viewModel.Id }, viewModel)); } else { var contact = await this.service.GetAsync(contactId); var updateViewModel = new UpdateContactViewModel() { Name = contact.Name, Address = contact.Address }; patchDocument.ApplyTo(updateViewModel, ModelState); if (!TryValidateModel(updateViewModel)) { return(ValidationProblem(ModelState)); } var updatedContact = new Contact() { Id = contactId, Name = updateViewModel.Name, Address = updateViewModel.Address }; await this.service.UpdateAsync(updatedContact); return(NoContent()); } }