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); }
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()); }
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); }
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); }
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)); } }