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)); }
public string InsertOrUpdateTag(IContactTag tag) { string result = String.Empty; lock (_tags) { var target = _tags.FirstOrDefault(x => x.Key == tag.Key); if (target == null) { target = ContactTag.GetLocalObject(tag); result = target.Key = Guid.NewGuid().ToString("D"); _tags.Add(target); } else { _tags.Remove(target); _tags.Add(ContactTag.GetLocalObject(tag)); } } FlushDb(); return(result); }
public async Task <IActionResult> PostTagContacts([FromRoute] int id, [FromBody] int[] ids) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var idsForTag = _context.ContactTags.Where(ct => ct.TagId == id && ids.Contains(ct.ContactId)); foreach (var ct in idsForTag) { ids = ids.Where(ci => ci != ct.ContactId).ToArray(); } ContactTag[] toAdd = new ContactTag[ids.Length]; for (int i = 0; i < ids.Length; i++) { toAdd[i] = new ContactTag(ids[i], id); } _context.ContactTags.AddRange(toAdd); await _context.SaveChangesAsync(); return(Ok(toAdd)); }
public static void AddContact(ApplicationDbContext context, string firstName, string lastName, string mail, string number, string tag, int phoneTypeId) { var contact = new Contact { FirstName = firstName, LastName = lastName, Emails = new List <Email> { new Email { EmailAddress = mail } }, Numbers = new List <PhoneNumber> { new PhoneNumber { Number = number, PhoneTypeId = phoneTypeId } } }; context.Contacts.Add(contact); if (!String.IsNullOrEmpty(tag)) { var contactTag = new ContactTag { ContactId = contact.Id, TagId = context.Tags.SingleOrDefault(t => t.Name == tag).Id }; context.ContactTags.Add(contactTag); } context.SaveChanges(); }
public IHttpActionResult Delete(int id) { if (id <= 0) { return(BadRequest("Not a valid Contact id")); } Contact contact = entities.Contact.Where(c => c.Id == id).FirstOrDefault(); if (contact == null) { return(BadRequest("Contact doesn't exist")); } ContactEmail contactEmail = entities.ContactEmail.Where(c => c.ContactId == id).FirstOrDefault(); ContactNumber contactNumber = entities.ContactNumber.Where(c => c.ContactId == id).FirstOrDefault(); ContactTag contactTag = entities.ContactTag.Where(c => c.ContactId == id).FirstOrDefault(); entities.ContactEmail.Remove(contactEmail); entities.ContactNumber.Remove(contactNumber); entities.ContactTag.Remove(contactTag); entities.Contact.Remove(contact); entities.SaveChanges(); return(Ok("Contact successfully deleted!")); }
public async Task <IActionResult> AddContactTag(ContactTag contactTagNew) { var contactTag = new ContactTag(); contactTag.ContactId = contactTagNew.ContactId; contactTag.ContactTagName = contactTagNew.ContactTagName; contactsRepository.Add(contactTag); if (await contactsRepository.SaveAll()) { return(NoContent()); } return(BadRequest("Error occured during adding a contact tag!")); }
private ContactTag CreateTag(GroupEntry groupEntry) { if (groupEntry.Title == null || string.IsNullOrEmpty(groupEntry.Title.Text)) { return(null); } var key = groupEntry.Id.AbsoluteUri.Split('/').LastOrDefault(); if (string.IsNullOrEmpty(key)) { return(null); } var tag = new ContactTag() { Name = groupEntry.Title.Text, VersionKey = groupEntry.Updated.Ticks, Key = key, Color = "#000000" }; tag.IsChanged = false; return(tag); }
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)); }
public int AddContact(ContactModel contactModel) { Contact contact = new Contact(); AutoMapper.Mapper.Map(contactModel, contact); contact.CreatedDate = DateTime.UtcNow; contact.ModifiedBy = contactModel.ModifiedBy; contact.CreatedBy = contactModel.CreatedBy; contact.ModifiedDate = DateTime.UtcNow; contact.Address = null; contact.User = null; contact.Address = ValidateAddress(contact.Address, contactModel.AddressModel); if (contactModel.AccountId > 0) { AccountContact accountcontact = new AccountContact(); accountcontact.AccountId = contactModel.AccountId; accountcontact.CreatedBy = contactModel.CreatedBy; accountcontact.CreatedDate = DateTime.UtcNow; contact.AccountContacts.Add(accountcontact); } if (contactModel.LeadId > 0) { LeadContact leadcontact = new LeadContact(); leadcontact.LeadId = contactModel.LeadId.Value; leadcontact.CreatedBy = contactModel.CreatedBy; leadcontact.CreatedDate = DateTime.UtcNow; contact.LeadContacts.Add(leadcontact); } contactRepository.Insert(contact); List <int> lisTagIds = new List <int>(); if (!string.IsNullOrEmpty(contactModel.ContactTagIds)) { string[] arrTagIds = contactModel.ContactTagIds.Split(','); int tagId = 0; for (int i = 0; i < arrTagIds.Length; i++) { tagId = arrTagIds[i].Decrypt(); lisTagIds.Add(tagId); } } if (!string.IsNullOrEmpty(contactModel.NewTagNames)) { List <int> lisNewAddedTagIds = new List <int>(); lisNewAddedTagIds = AddTagsToSystem(contactModel.NewTagNames, contactModel.CompanyId, contactModel.CreatedBy); if (lisNewAddedTagIds.Count > 0) { lisTagIds = lisTagIds.Concat(lisNewAddedTagIds).ToList(); } } //Associate Tagids to contact if (lisTagIds.Count > 0) { ContactTag contactTag; for (int i = 0; i < lisTagIds.Count; i++) { contactTag = new ContactTag(); contactTag.ContactId = contact.ContactId; contactTag.TagId = lisTagIds[i]; contactTagRepository.Insert(contactTag); } } return(contact.ContactId); }
public void UpdateContact(ContactModel contactModel) { Contact contact = contactRepository.SingleOrDefault(u => u.ContactId == contactModel.ContactId && u.RecordDeleted == false); if (contact != null) { contactModel.ModifiedDate = DateTime.UtcNow; AutoMapper.Mapper.Map(contactModel, contact); if (contact.AddressId == null || contact.AddressId == 0) { contact.Address = null; } else if (contact.Address.CountryId == 0) { contact.Address.CountryId = null; } contactRepository.Update(contact); List <int> listAllExistingTagIds = new List <int>(); List <int> listNewTagIds = new List <int>(); List <int> listContactAssociatedTagIds = new List <int>(); List <int> listDeleteTagIds = new List <int>(); listContactAssociatedTagIds = contact.ContactTags.Select(x => x.TagId).ToList(); if (!string.IsNullOrEmpty(contactModel.ContactTagIds)) { string[] arrTagIds = contactModel.ContactTagIds.Split(','); int tagId = 0; for (int i = 0; i < arrTagIds.Length; i++) { tagId = arrTagIds[i].Decrypt(); if (listContactAssociatedTagIds.Where(x => x == tagId).Count() == 0) { listNewTagIds.Add(tagId); } else { listAllExistingTagIds.Add(tagId); } } } if (!string.IsNullOrEmpty(contactModel.NewTagNames)) { List <int> lisNewAddedTagIds = new List <int>(); lisNewAddedTagIds = AddTagsToSystem(contactModel.NewTagNames, contactModel.CompanyId, contactModel.CreatedBy); if (lisNewAddedTagIds.Count > 0) { listNewTagIds = listNewTagIds.Concat(lisNewAddedTagIds).ToList(); } } for (int i = 0; i < listContactAssociatedTagIds.Count; i++) { if (listAllExistingTagIds.Where(x => x == listContactAssociatedTagIds[i]).Count() == 0) { listDeleteTagIds.Add(listContactAssociatedTagIds[i]); } } //Associate Tagids to contact if (listNewTagIds.Count > 0) { ContactTag contactTag; for (int i = 0; i < listNewTagIds.Count; i++) { contactTag = new ContactTag(); contactTag.ContactId = contact.ContactId; contactTag.TagId = listNewTagIds[i]; contactTagRepository.Insert(contactTag); } } if (listDeleteTagIds.Count > 0) { contactTagRepository.Delete(x => x.ContactId == contact.ContactId && listDeleteTagIds.Contains(x.TagId)); } } }