public IActionResult Post([FromBody] PhoneBookContactDto phoneBookContactDto) { //Check if contact exists then update, otherwise insert new. bool result; if (_phoneBookRepository.CheckifContactExists(phoneBookContactDto.Name)) { //Check if the entry already exists and return 409 if true if (_phoneBookRepository.CheckifContactEntryExists(phoneBookContactDto)) { return(StatusCode(StatusCodes.Status409Conflict)); } result = _phoneBookRepository.UpdateContact(phoneBookContactDto); } else { result = _phoneBookRepository.InsertContact(phoneBookContactDto); } if (!result) { return(StatusCode(StatusCodes.Status500InternalServerError)); } return(Ok()); }
public bool UpdateContact(PhoneBookContactDto phoneBookContactDto) { var contact = _context.PhoneBookContacts.Where(x => x.Name.Equals(phoneBookContactDto.Name, StringComparison.OrdinalIgnoreCase)) .FirstOrDefault(); List <Entry> entries = contact?.Entries.ToList() ?? new List <Entry>(); entries.Add(new Entry { PhoneNumber = phoneBookContactDto.Number, EntryType = phoneBookContactDto.EntryType }); if (contact != null) { _context.Update(new PhoneBookContact { Id = contact.Id, Name = contact.Name, Entries = entries }); } _context.SaveChanges(); return(true); }
public bool DeleteContact(PhoneBookContactDto phoneBookContactDto) { var contact = _context.PhoneBookContacts .Where(x => x.Name.Equals(phoneBookContactDto.Name, StringComparison.OrdinalIgnoreCase)) .FirstOrDefault(); _context.PhoneBookContacts.Remove(contact); _context.SaveChanges(); return(true); }
public IActionResult Delete([FromBody] PhoneBookContactDto phoneBookContactDto) { bool result = _phoneBookRepository.DeleteContact(phoneBookContactDto); if (!result) { return(StatusCode(StatusCodes.Status500InternalServerError)); } return(Ok()); }
public bool CheckifContactEntryExists(PhoneBookContactDto phoneBookContactDto) { var contact = _context.PhoneBookContacts.Include(x => x.Entries) .Where(x => x.Name == phoneBookContactDto.Name) .FirstOrDefault(); List <Entry> entries = contact?.Entries.ToList() ?? new List <Entry>(); return(entries.Any(x => x.EntryType.ToLower() == phoneBookContactDto.EntryType.ToLower() && x.PhoneNumber.ToLower() == phoneBookContactDto.Number.ToLower())); }
public bool InsertContact(PhoneBookContactDto phoneBookContact) { _context.Add(new PhoneBookContact { Name = phoneBookContact.Name, Entries = new List <Entry> { new Entry { PhoneNumber = phoneBookContact.Number, EntryType = phoneBookContact.EntryType } } }); _context.SaveChanges(); return(true); }