/// <summary> /// Convert a given voteQuestion to a ViewModel /// </summary> public static ViewModels.Alias ToViewModel(this MicrosoftDynamicsCRMadoxioAlias alias) { ViewModels.Alias result = null; if (alias != null) { result = new ViewModels.Alias(); if (alias.AdoxioAliasid != null) { result.id = alias.AdoxioAliasid; } result.firstname = alias.AdoxioFirstname; result.middlename = alias.AdoxioMiddlename; result.lastname = alias.AdoxioLastname; if (alias.AdoxioContactId != null) { result.contact = alias.AdoxioContactId.ToViewModel(); } if (alias.AdoxioWorkerId != null) { result.worker = alias.AdoxioWorkerId.ToViewModel(); } } return(result); }
public async Task <IActionResult> UpdateAlias([FromBody] ViewModels.Alias item, string id) { if (id != null && item.id != null && id != item.id) { return(BadRequest()); } // get the contact Guid aliasId = Guid.Parse(id); MicrosoftDynamicsCRMadoxioAlias alias = await _dynamicsClient.GetAliasById(aliasId); if (alias == null) { return(new NotFoundResult()); } MicrosoftDynamicsCRMadoxioAlias patchAlias = new MicrosoftDynamicsCRMadoxioAlias(); patchAlias.CopyValues(item); try { await _dynamicsClient.Aliases.UpdateAsync(aliasId.ToString(), patchAlias); } catch (HttpOperationException httpOperationException) { _logger.LogError(httpOperationException, "Error updating contact"); } alias = await _dynamicsClient.GetAliasById(aliasId); return(new JsonResult(alias.ToViewModel())); }
public async Task <IActionResult> CreateAlias([FromBody] ViewModels.Alias item) { if (item?.contact?.id == null || item?.worker?.id == null) { return(BadRequest()); } // for association with current user string userJson = _httpContextAccessor.HttpContext.Session.GetString("UserSettings"); UserSettings userSettings = JsonConvert.DeserializeObject <UserSettings>(userJson); MicrosoftDynamicsCRMadoxioAlias alias = new MicrosoftDynamicsCRMadoxioAlias(); // copy received values to Dynamics Application alias.CopyValues(item); try { alias = _dynamicsClient.Aliases.Create(alias); } 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); } MicrosoftDynamicsCRMadoxioAlias patchAlias = new MicrosoftDynamicsCRMadoxioAlias(); // set contact and worker associations try { var worker = _dynamicsClient.GetWorkerById(Guid.Parse(item.worker.id)); patchAlias.WorkerIdODataBind = _dynamicsClient.GetEntityURI("adoxio_workers", item.worker.id); var contact = _dynamicsClient.GetContactById(Guid.Parse(item.contact.id)); patchAlias.ContactIdODataBind = _dynamicsClient.GetEntityURI("contacts", item.contact.id); await _dynamicsClient.Aliases.UpdateAsync(alias.AdoxioAliasid, patchAlias); } 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(alias.ToViewModel())); }
public async Task <IActionResult> CreateAlias([FromBody] ViewModels.Alias item) { if (item?.contact?.id == null || item?.worker?.id == null) { return(BadRequest()); } // get the current user. UserSettings userSettings = UserSettings.CreateFromHttpContext(_httpContextAccessor); MicrosoftDynamicsCRMadoxioAlias alias = new MicrosoftDynamicsCRMadoxioAlias(); // copy received values to Dynamics Application alias.CopyValues(item); try { alias = _dynamicsClient.Aliases.Create(alias); } catch (HttpOperationException httpOperationException) { _logger.LogError(httpOperationException, "Error creating application"); // fail if we can't create. throw (httpOperationException); } MicrosoftDynamicsCRMadoxioAlias patchAlias = new MicrosoftDynamicsCRMadoxioAlias(); // set contact and worker associations try { var worker = _dynamicsClient.GetWorkerById(Guid.Parse(item.worker.id)); patchAlias.WorkerIdODataBind = _dynamicsClient.GetEntityURI("adoxio_workers", item.worker.id); var contact = _dynamicsClient.GetContactById(Guid.Parse(item.contact.id)); patchAlias.ContactIdODataBind = _dynamicsClient.GetEntityURI("contacts", item.contact.id); await _dynamicsClient.Aliases.UpdateAsync(alias.AdoxioAliasid, patchAlias); } catch (HttpOperationException httpOperationException) { _logger.LogError(httpOperationException, "Error updating application"); // fail if we can't create. throw (httpOperationException); } return(new JsonResult(alias.ToViewModel())); }
private async Task <IActionResult> CreateAlias(ViewModels.Alias item, string contactId) { if (item == null || String.IsNullOrEmpty(contactId)) { return(BadRequest()); } // for association with current user string userJson = _httpContextAccessor.HttpContext.Session.GetString("UserSettings"); UserSettings userSettings = JsonConvert.DeserializeObject <UserSettings>(userJson); MicrosoftDynamicsCRMadoxioAlias alias = new MicrosoftDynamicsCRMadoxioAlias(); // copy received values to Dynamics Application alias.CopyValues(item); try { alias = _dynamicsClient.Aliases.Create(alias); } catch (HttpOperationException httpOperationException) { _logger.LogError(httpOperationException, "Error creating application"); // fail if we can't create. throw; } MicrosoftDynamicsCRMadoxioAlias patchAlias = new MicrosoftDynamicsCRMadoxioAlias(); // set contact association try { patchAlias.ContactIdODataBind = _dynamicsClient.GetEntityURI("contacts", contactId); await _dynamicsClient.Aliases.UpdateAsync(alias.AdoxioAliasid, patchAlias); } catch (HttpOperationException httpOperationException) { _logger.LogError(httpOperationException, "Error updating application"); // fail if we can't create. throw; } return(new JsonResult(alias.ToViewModel())); }
private async Task <IActionResult> CreateAlias(ViewModels.Alias item, string contactId) { if (item == null || string.IsNullOrEmpty(contactId)) { return(BadRequest()); } var alias = new MicrosoftDynamicsCRMadoxioAlias(); // copy received values to Dynamics Application alias.CopyValues(item); try { alias = _dynamicsClient.Aliases.Create(alias); } catch (HttpOperationException httpOperationException) { _logger.LogError(httpOperationException, "Error creating application"); // fail if we can't create. throw; } var patchAlias = new MicrosoftDynamicsCRMadoxioAlias(); // set contact association try { patchAlias.ContactIdODataBind = _dynamicsClient.GetEntityURI("contacts", contactId); await _dynamicsClient.Aliases.UpdateAsync(alias.AdoxioAliasid, patchAlias); } catch (HttpOperationException httpOperationException) { _logger.LogError(httpOperationException, "Error updating application"); // fail if we can't create. throw; } return(new JsonResult(alias.ToViewModel())); }
public static void CopyValues(this MicrosoftDynamicsCRMadoxioAlias to, ViewModels.Alias from) { to.AdoxioFirstname = from.firstname; to.AdoxioMiddlename = from.middlename; to.AdoxioLastname = from.lastname; }
public async System.Threading.Tasks.Task TestCRUD() { string changedName = "ChangedName"; string service = "contact"; // register and login as our first user var loginUser1 = randomNewUserName("TestServiceCardUser", 6); await ServiceCardLogin(loginUser1, loginUser1); // C - Create //First create the contact var request = new HttpRequestMessage(HttpMethod.Post, $"/api/{service}/worker"); ViewModels.Contact contactVM = new ViewModels.Contact() { firstname = "TestFirst", middlename = "TestMiddle", lastname = "TestLst" }; string jsonString = JsonConvert.SerializeObject(contactVM); request.Content = new StringContent(jsonString, Encoding.UTF8, "application/json"); var response = await _client.SendAsync(request); jsonString = await response.Content.ReadAsStringAsync(); response.EnsureSuccessStatusCode(); contactVM = JsonConvert.DeserializeObject <ViewModels.Contact>(jsonString); // Get the worker request = new HttpRequestMessage(HttpMethod.Get, $"/api/worker/{contactVM.id}"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); jsonString = await response.Content.ReadAsStringAsync(); var workerVM = JsonConvert.DeserializeObject <ViewModels.Worker>(jsonString); var aliasVM = new ViewModels.Alias() { firstname = "TestFirst", middlename = "TestMiddle", lastname = "TestLst", contact = new ViewModels.Contact() { id = contactVM.id }, worker = new ViewModels.Worker() { id = workerVM.id } }; request = new HttpRequestMessage(HttpMethod.Post, $"/api/alias"); jsonString = JsonConvert.SerializeObject(aliasVM); request.Content = new StringContent(jsonString, Encoding.UTF8, "application/json"); response = await _client.SendAsync(request); jsonString = await response.Content.ReadAsStringAsync(); response.EnsureSuccessStatusCode(); aliasVM = JsonConvert.DeserializeObject <ViewModels.Alias>(jsonString); // R - Read request = new HttpRequestMessage(HttpMethod.Get, "/api/alias/by-contactid/" + contactVM.id); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); jsonString = await response.Content.ReadAsStringAsync(); var alias2 = (JsonConvert.DeserializeObject <List <ViewModels.Alias> >(jsonString)).FirstOrDefault();; Assert.Equal(alias2.id, aliasVM.id); // U - Update alias2.firstname = changedName; request = new HttpRequestMessage(HttpMethod.Put, "/api/alias/" + alias2.id) { Content = new StringContent(JsonConvert.SerializeObject(alias2), Encoding.UTF8, "application/json") }; response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // verify that the update persisted. request = new HttpRequestMessage(HttpMethod.Get, "/api/alias/by-contactid/" + contactVM.id); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); jsonString = await response.Content.ReadAsStringAsync(); var alias3 = (JsonConvert.DeserializeObject <List <ViewModels.Alias> >(jsonString)).FirstOrDefault();; Assert.Equal(alias3.firstname, changedName); // D - Delete request = new HttpRequestMessage(HttpMethod.Post, "/api/alias/" + aliasVM.id + "/delete"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // second delete should return a 404. request = new HttpRequestMessage(HttpMethod.Post, "/api/alias/" + aliasVM.id + "/delete"); response = await _client.SendAsync(request); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); // should get a 404 if we try a get now. request = new HttpRequestMessage(HttpMethod.Get, "/api/alias/by-contactid/" + contactVM.id); response = await _client.SendAsync(request); jsonString = await response.Content.ReadAsStringAsync(); var alias4 = (JsonConvert.DeserializeObject <List <ViewModels.Alias> >(jsonString)).FirstOrDefault(); Assert.Null(alias4); await Logout(); }