Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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!"));
        }
Exemplo n.º 6
0
        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!"));
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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));
                }
            }
        }