Exemplo n.º 1
0
        public async Task UpdateAsync(Guid id, CreateUpdateContactDto input)
        {
            var contact = await _contactRepository.GetAsync(id, includeDetails : false);

            await _contactRepository.EnsureCollectionLoadedAsync(contact, x => x.ContactGroups);

            //List<Group> groups = await _groupRepository.GetListAsync();
            //Add new relationship
            foreach (Guid groupid in input.GroupIds)
            {
                var item = contact.ContactGroups.FirstOrDefault(gid => gid.GroupId.ToString().Equals(groupid.ToString()));
                if (item == null)
                {
                    contact.ContactGroups.Add(new ContactGroup(
                                                  GuidGenerator.Create(),
                                                  contact.Id,
                                                  groupid
                                                  ));
                }
            }

            //Remove relationship
            for (int i = 0; i < contact.ContactGroups.Count; i++)
            {
                Guid item = input.GroupIds.FirstOrDefault(gid => gid.ToString().Equals(contact.ContactGroups[i].GroupId.ToString()));
                if (item.ToString().Equals(Guid.Empty.ToString()))
                {
                    contact.ContactGroups.Remove(contact.ContactGroups[i]);
                    i--;
                }
            }
            //contact.Groups = new List<Group>();

            contact.Email = input.Email;
            //contact.ContactGroups = updateGroup;
            contact.DateOfBirth = input.DateOfBirth;
            contact.FirstName   = input.FirstName;
            contact.LastName    = input.LastName;
            contact.PhoneNumber = input.PhoneNumber;
            contact.Addition    = input.Addition;

            await _contactRepository.UpdateAsync(contact);

            //await _contactRepository.UpdateContact(id, contact);
        }
Exemplo n.º 2
0
        public async Task <ContactDto> CreateAsync(CreateUpdateContactDto input)
        {
            var group = await _groupRepository.GetListAsync();

            List <ContactGroup> contactGroups = new List <ContactGroup>();

            var contact = await _contactManager.CreateAsync(
                input.FirstName,
                input.LastName,
                input.Email,
                input.DateOfBirth,
                input.PhoneNumber,
                input.Addition,
                0,
                null,
                0
                );

            foreach (Guid id in input.GroupIds)
            {
                var item = group.FirstOrDefault(gid => gid.Id.ToString().Equals(id.ToString()));
                if (item != null)
                {
                    contactGroups.Add(new ContactGroup(
                                          GuidGenerator.Create(),
                                          contact.Id,
                                          item.Id
                                          ));
                }
            }

            contact.ContactGroups = contactGroups;

            await _contactRepository.InsertAsync(contact);

            //await _contactRepository.CreateContact(contact);

            return(ObjectMapper.Map <Contact, ContactDto>(contact));
        }