Example #1
0
        public async Task <IActionResult> PutContact(Guid id, ContactDisplay contact)
        {
            if (id != contact.ContactId)
            {
                return(BadRequest());
            }

            var contactEntity =
                await _context.Contacts.Include("PhoneNumbers").FirstOrDefaultAsync(i => i.ContactId == id);

            if (contactEntity == null)
            {
                return(NotFound());
            }

            contactEntity.UpdateContactFromDisplay(contact);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException) when(!ContactExists(id))
            {
                return(NotFound());
            }

            return(NoContent());
        }
Example #2
0
        public async Task <ActionResult <ContactDisplay> > GetContact(Guid id)
        {
            var contact = await _context.Contacts.Include("PhoneNumbers").FirstOrDefaultAsync(n => n.ContactId == id);

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

            return(ContactDisplay.CreateContactDisplay(contact));
        }
Example #3
0
        public async Task <ActionResult <Contact> > PostContact(ContactDisplay contact)
        {
            var contactEntity = new Contact
            {
                Address      = contact.Address,
                Name         = contact.Name,
                DateOfBirth  = contact.DateOfBirth,
                PhoneNumbers = contact.Numbers.Select(n => new PhoneNumber
                {
                    Number = n.Number
                }).ToList()
            };

            _context.Contacts.Add(contactEntity);
            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetContact), new { id = contact.ContactId }, ContactDisplay.CreateContactDisplay(contactEntity)));
        }
Example #4
0
 public async Task <ActionResult <IEnumerable <ContactDisplay> > > GetContacts()
 {
     return(await _context.Contacts.Include("PhoneNumbers").Select(cd => ContactDisplay.CreateContactDisplay(cd))
            .ToListAsync());
 }