Exemple #1
0
        public async Task Update_Ok()
        {
            //Arrange
            var id        = 1;
            var firstName = "Elizabeth";
            var lastName  = "Johnson";
            var email     = "*****@*****.**";
            var phone     = "0635555";
            var active    = true;

            var contactDTO = new UpdateContactDTO()
            {
                Id        = id,
                FirstName = firstName,
                LastName  = lastName,
                Email     = email,
                Phone     = phone,
                Active    = active,
                ListIds   = new List <int>()
            };

            //Act
            var contactController = new ContactController(_serviceBusMock.Object, _contactContext.Object);
            var actionResult      = await contactController.Update(contactDTO);

            //Assert
            var result = Assert.IsType <OkResult>(actionResult);

            Assert.Equal((int)System.Net.HttpStatusCode.OK, result.StatusCode);
        }
Exemple #2
0
 public async Task Update(UpdateContactDTO updateContact)
 {
     try
     {
         _dbContext.Contacts.Update(updateContact.ToContact());
         await _dbContext.SaveChangesAsync();
     }
     catch (System.Exception)
     {
         throw new NotFoundException();
     }
 }
        public async Task <IActionResult> UpdateContact([FromBody] UpdateContactDTO obj)
        {
            var response = await _contact.UpdateContact(obj);

            if (response.statusCode == 400)
            {
                return(BadRequest(response));
            }
            else if (response.statusCode == 401)
            {
                return(Unauthorized(response));
            }

            return(Ok(response));
        }
        public async Task <IActionResult> UpdateContact([FromBody] UpdateContactDTO contactDTO)
        {
            try
            {
                await _contactService.Update(contactDTO);
            }
            catch (NotFoundException)
            {
                return(NotFound());
            }
            catch (System.Exception ex)
            {
                return(BadRequest(ErrorDTO.Create(ex.Message)));
            }

            return(NoContent());
        }
Exemple #5
0
        public async Task Update_BadRequest_ContactDoesntExist()
        {
            //Arrange
            var contactIdThatDoesntExist = 10;
            var model = new UpdateContactDTO()
            {
                Id        = contactIdThatDoesntExist,
                FirstName = "test",
                LastName  = "test",
                Email     = "*****@*****.**",
                Active    = true
            };

            //Act
            var controller   = new ContactController(_serviceBusMock.Object, _contactContext.Object);
            var actionResult = await controller.Update(model);

            //Assert
            var result = Assert.IsType <BadRequestResult>(actionResult);
        }
Exemple #6
0
        public async Task Update_BadRequest_InvalidModel()
        {
            //Arrange
            var emailThatAlreadyExists = "*****@*****.**";
            var model = new UpdateContactDTO()
            {
                Id        = 1,
                FirstName = "test",
                LastName  = "test",
                Email     = emailThatAlreadyExists,
                Active    = true
            };

            //Act
            var controller   = new ContactController(_serviceBusMock.Object, _contactContext.Object);
            var actionResult = await controller.Update(model);

            //Assert
            var result = Assert.IsType <BadRequestObjectResult>(actionResult);
        }
Exemple #7
0
        public async Task <IActionResult> Update(UpdateContactDTO model)
        {
            //if another contact already has given email, then add modal error
            var exist = await _contactContext.Contacts.AnyAsync(c => c.Email == model.Email && c.Id != model.Id);

            if (exist)
            {
                ModelState.AddModelError("Email", "Contact with given e-mail already exists");
                return(BadRequest(ModelState));
            }

            var contact = await _contactContext.Contacts.Include(c => c.ContactLists).SingleOrDefaultAsync(c => c.Id == model.Id);

            if (contact == null)
            {
                return(BadRequest());
            }

            contact.FirstName = model.FirstName;
            contact.LastName  = model.LastName;
            contact.Email     = model.Email;
            contact.Phone     = model.Phone;
            contact.Active    = model.Active;

            if (model.ListIds.Count() == 0)
            {
                //if none of the lists are checked, then remove all
                _contactContext.ContactLists.RemoveRange(_contactContext.ContactLists.Where(cl => cl.FContact == model.Id));
            }
            else
            {
                //if list with passed id doesn't exist, then return BadRequest()
                var listsExist = _contactContext.Lists.Select(l => l.Id).ContainsAllItems(model.ListIds);
                if (!listsExist)
                {
                    return(BadRequest());
                }

                //remove lists that contact already has, but are not selected on the form
                var listsToRemove = contact.ContactLists.Where(cl => !model.ListIds.Any(listID => listID == cl.FList));
                if (listsToRemove != null)
                {
                    _contactContext.RemoveRange(listsToRemove);
                }

                //add lists that contact doesn't have, but are selected on the form
                var listsToAdd = model.ListIds.Where(listID => !contact.ContactLists.Any(cl => cl.FList == listID));
                foreach (var listId in listsToAdd)
                {
                    contact.ContactLists.Add(new ContactList {
                        FContact = contact.Id, FList = listId
                    });
                }
            }

            try
            {
                await _contactContext.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
        }