Example #1
0
        public HttpResponseMessage SaveContactTags(AddTagViewModel viewModel)
        {
            SaveContactTagsResponse response = tagService.SaveContactTags(new SaveContactTagsRequest()
            {
                Contacts      = viewModel.Contacts,
                Tags          = viewModel.TagsList,
                Opportunities = viewModel.Opportunities,
                UserId        = this.UserId,
                AccountId     = this.AccountId
            });

            return(Request.BuildResponse(response));
        }
Example #2
0
        //  public async Task<SaveContactTagsResponse> SaveContactTags(SaveContactTagsRequest request)
        public SaveContactTagsResponse SaveContactTags(SaveContactTagsRequest request)
        {
            SaveContactTagsResponse response = new SaveContactTagsResponse();

            if (request.Tags != null)
            {
                IEnumerable <int> contacts = new List <int>();
                if (request.Contacts != null)
                {
                    contacts = request.Contacts.Select(p => p.Id).ToList();
                }
                List <Opportunity> opportunities = new List <Opportunity>();
                if (request.Opportunities != null)
                {
                    foreach (OpportunitiesList opportunityList in request.Opportunities)
                    {
                        Opportunity opportunity;
                        opportunity = new Opportunity()
                        {
                            Id = opportunityList.OpportunityID
                        };
                        opportunities.Add(opportunity);
                    }
                }
                IEnumerable <Tag> Tags = Mapper.Map <IEnumerable <TagViewModel>, IEnumerable <Tag> >(request.Tags);

                List <Tag> tags = tagRepository.SaveContactTags(contacts, opportunities, Tags, request.AccountId, request.UserId);
                if (tags != null)
                {
                    foreach (Tag tag in tags)
                    {
                        indexingService.IndexTag(tag);
                    }
                }
                if (request.Contacts != null && request.Contacts.Any())
                {
                    contactService.ContactIndexing(new ContactIndexingRequest()
                    {
                        ContactIds = request.Contacts.Select(s => s.Id).ToList(), Ids = request.Contacts.ToLookup(o => o.Id, o => { return(true); })
                    });

                    addToTopic(tags.Select(s => s.Id).Distinct(), contacts, request.UserId, request.AccountId);
                }

                response.TagIds = tags.Select(p => p.Id).ToList();
            }

            return(response);
        }