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)); }
// 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); }