private ICollection <PhoneContactTags> updateContactTags(List <Dictionary <string, string> > contactTags, PhoneContact phoneContact)
        {
            this.deleteContactTags(phoneContact);
            ICollection <ContactTag> newContactTags = new HashSet <ContactTag>();

            foreach (Dictionary <string, string> contactTag in contactTags)
            {
                ContactTag dbContactTag = _contantTagRepo.findOneBy(c => c.tag.ToString().ToLower().Equals(contactTag["value"].ToLower()));
                if (dbContactTag == null)
                {
                    dbContactTag     = new ContactTag();
                    dbContactTag.tag = contactTag["value"];
                    _contantTagRepo.Create(dbContactTag);
                    _contantTagRepo.Save();
                    newContactTags.Add(dbContactTag);
                    continue;
                }

                if (dbContactTag != null && !phoneContact.contactContainsTag(dbContactTag))
                {
                    newContactTags.Add(dbContactTag);
                }
            }
            return(this.createPhoneContactTags(newContactTags, phoneContact));
        }
        private ICollection <PhoneContactTags> createContactTags(List <Dictionary <string, string> > contactTags, PhoneContact phoneContact)
        {
            ICollection <ContactTag> contactTagEntities = new List <ContactTag>();

            foreach (Dictionary <string, string> conTag in contactTags)
            {
                ContactTag dbContantTag = _contantTagRepo.findOneBy(c => c.tag.ToString().Equals(conTag["value"]));
                if (phoneContact.contactContainsTag(dbContantTag))
                {
                    continue;
                }

                if (dbContantTag == null)
                {
                    dbContantTag     = new ContactTag();
                    dbContantTag.tag = conTag["value"];
                    _contantTagRepo.Create(dbContantTag);
                    _contantTagRepo.Save();
                }
                contactTagEntities.Add(dbContantTag);
            }
            return(this.createPhoneContactTags(contactTagEntities, phoneContact));
        }