public async Task <IActionResult> UpdateAddress([FromBody] ViewModels.PreviousAddress item, string id) { if (id != null && item.id != null && id != item.id) { return(BadRequest()); } // get the Address MicrosoftDynamicsCRMadoxioPreviousaddress Address = await _dynamicsClient.GetPreviousAddressById(id); if (Address == null) { return(new NotFoundResult()); } MicrosoftDynamicsCRMadoxioPreviousaddress patchAddress = new MicrosoftDynamicsCRMadoxioPreviousaddress(); patchAddress.CopyValues(item); try { await _dynamicsClient.Previousaddresses.UpdateAsync(id, patchAddress); } catch (OdataerrorException odee) { _logger.LogError("Error updating Address"); _logger.LogError("Request:"); _logger.LogError(odee.Request.Content); _logger.LogError("Response:"); _logger.LogError(odee.Response.Content); } Address = await _dynamicsClient.GetPreviousAddressById(id); return(Json(Address.ToViewModel())); }
public async Task <IActionResult> CreateAddress([FromBody] ViewModels.PreviousAddress item) { // for association with current user string userJson = _httpContextAccessor.HttpContext.Session.GetString("UserSettings"); UserSettings userSettings = JsonConvert.DeserializeObject <UserSettings>(userJson); MicrosoftDynamicsCRMadoxioPreviousaddress address = new MicrosoftDynamicsCRMadoxioPreviousaddress(); // copy received values to Dynamics Application address.CopyValues(item); try { address = _dynamicsClient.Previousaddresses.Create(address); } catch (OdataerrorException odee) { _logger.LogError("Error creating application"); _logger.LogError("Request:"); _logger.LogError(odee.Request.Content); _logger.LogError("Response:"); _logger.LogError(odee.Response.Content); // fail if we can't create. throw (odee); } MicrosoftDynamicsCRMadoxioPreviousaddress patchAddress = new MicrosoftDynamicsCRMadoxioPreviousaddress(); // set contact and worker associations try { var contact = _dynamicsClient.GetContactById(Guid.Parse(item.contactId)); patchAddress.ContactIdODataBind = _dynamicsClient.GetEntityURI("contacts", item.contactId); var worker = _dynamicsClient.GetWorkerById(Guid.Parse(item.workerId)); patchAddress.WorkerIdODataBind = _dynamicsClient.GetEntityURI("adoxio_workers", item.workerId); await _dynamicsClient.Previousaddresses.UpdateAsync(address.AdoxioPreviousaddressid, patchAddress); } catch (OdataerrorException odee) { _logger.LogError("Error updating application"); _logger.LogError("Request:"); _logger.LogError(odee.Request.Content); _logger.LogError("Response:"); _logger.LogError(odee.Response.Content); // fail if we can't create. throw (odee); } return(Json(address.ToViewModel())); }
public async Task <IActionResult> CreateAddress([FromBody] ViewModels.PreviousAddress item) { // get the current user. UserSettings userSettings = UserSettings.CreateFromHttpContext(_httpContextAccessor); MicrosoftDynamicsCRMadoxioPreviousaddress address = new MicrosoftDynamicsCRMadoxioPreviousaddress(); // copy received values to Dynamics Application address.CopyValues(item); try { address = _dynamicsClient.Previousaddresses.Create(address); } catch (HttpOperationException httpOperationException) { _logger.LogError(httpOperationException, "Error creating application"); // fail if we can't create. throw (httpOperationException); } MicrosoftDynamicsCRMadoxioPreviousaddress patchAddress = new MicrosoftDynamicsCRMadoxioPreviousaddress(); // set contact and worker associations try { var contact = _dynamicsClient.GetContactById(Guid.Parse(item.contactId)); patchAddress.ContactIdODataBind = _dynamicsClient.GetEntityURI("contacts", item.contactId); if (item.workerId != null) { var worker = _dynamicsClient.GetWorkerById(Guid.Parse(item.workerId)); patchAddress.WorkerIdODataBind = _dynamicsClient.GetEntityURI("adoxio_workers", item.workerId); } await _dynamicsClient.Previousaddresses.UpdateAsync(address.AdoxioPreviousaddressid, patchAddress); } catch (HttpOperationException httpOperationException) { _logger.LogError(httpOperationException, "Error updating application"); // fail if we can't create. throw (httpOperationException); } return(new JsonResult(address.ToViewModel())); }