Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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()));
        }
Beispiel #3
0
        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()));
        }
Beispiel #7
0
 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();
        }