Example #1
0
        public async Task SaveAsync(Core.AddressBook addressBook)
        {
            foreach (var contact in addressBook.Contacts)
            {
                switch (contact.Tracking)
                {
                case TrackingState.Added:
                    _ctx.Contacts.Add(contact);
                    break;

                case TrackingState.Modified:
                    _ctx.Contacts.Update(contact);
                    break;

                case TrackingState.Deleted:
                    _ctx.Contacts.Remove(contact);
                    break;
                }
                foreach (var telephone in contact.TelephoneNumbers)
                {
                    switch (telephone.Tracking)
                    {
                    case TrackingState.Added:
                        _ctx.TelephoneNumbers.Add(telephone);
                        break;

                    case TrackingState.Deleted:
                        _ctx.TelephoneNumbers.Remove(telephone);
                        break;
                    }
                }
            }
            await _ctx.SaveChangesAsync();
        }
Example #2
0
        public async Task <Core.AddressBook> GetContactAsync(string name, Address address)
        {
            var contacts = await _ctx
                           .Contacts
                           .Include(c => c.TelephoneNumbers)
                           .AsNoTracking()
                           .Where(c => c.Name == name && c.Address == address)
                           .ToListAsync();

            var addressBook = new Core.AddressBook(
                (await _ctx.AddressBooks
                 .AsNoTracking()
                 .SingleOrDefaultAsync()).Id,
                contacts);

            return(addressBook);
        }
Example #3
0
        public async Task <Core.AddressBook> GetContactsAsync(int page = 1)
        {
            var contacts = await _ctx
                           .Contacts
                           .OrderBy(c => c.Id)
                           .Skip((page - 1) * pageSize)
                           .Take(pageSize)
                           .Include(c => c.TelephoneNumbers)
                           .AsNoTracking()
                           .ToListAsync();

            var addressBook = new Core.AddressBook(
                (await _ctx.AddressBooks
                 .AsNoTracking()
                 .SingleOrDefaultAsync()).Id,
                contacts);

            return(addressBook);
        }
Example #4
0
        public async Task <Core.AddressBook> GetContactAsync(Guid contactId)
        {
            var contacts = await _ctx
                           .Contacts
                           .Include(c => c.TelephoneNumbers)
                           .AsNoTracking()
                           .Where(c => c.Id == contactId)
                           .ToListAsync();

            Core.AddressBook addressBook1 = await _ctx.AddressBooks
                                            .AsNoTracking()
                                            .SingleOrDefaultAsync();

            var addressBook = new Core.AddressBook(
                (await _ctx.AddressBooks
                 .AsNoTracking()
                 .SingleOrDefaultAsync()).Id,
                contacts);

            return(addressBook);
        }