public SaveTagResponse LeadScore_SaveTag(SaveTagRequest request) { Logger.Current.Verbose("Request to save the tag."); Tag tag = Mapper.Map <TagViewModel, Tag>(request.TagViewModel); isTagValid(tag); Tag persistedTag = tagRepository.SaveContactTag(request.TagViewModel.ContactId, request.TagViewModel.TagName, request.TagViewModel.TagID, request.TagViewModel.AccountID, request.TagViewModel.CreatedBy); unitOfWork.Commit(); addToTopic(persistedTag.Id, request.TagViewModel.AccountID, request.TagViewModel.ContactId, request.TagViewModel.CreatedBy, true); //persistedTag.TagNameAutoComplete.Output = persistedTag.LeadScoreTag == true ? persistedTag.TagName + " *" : persistedTag.TagName; indexingService.IndexTag(persistedTag); request.TagViewModel.TagID = persistedTag.Id; SaveTagResponse response = new SaveTagResponse(); response.TagViewModel = request.TagViewModel; return(response); }
public HttpResponseMessage PostTag(TagViewModel viewModel) { SaveTagResponse response = tagService.SaveTag(new SaveTagRequest() { TagViewModel = viewModel }); return(Request.BuildResponse(response)); }
public SaveTagResponse MergeTag(SaveTagRequest request) { Logger.Current.Verbose("Request to merge the tags."); SaveTagResponse tagResponse = new SaveTagResponse(); bool isAssociatedWithWorkflow = tagRepository.isAssociatedWithWorkflows(new int[] { request.TagViewModel.sourceTagID }); bool isAssociatedWithLeadScoreRules = tagRepository.isAssociatedWithLeadScoreRules(new int[] { request.TagViewModel.sourceTagID }); tagResponse.IsAssociatedWithLeadScoreRules = isAssociatedWithLeadScoreRules; tagResponse.IsAssociatedWithWorkflows = isAssociatedWithWorkflow; if (isAssociatedWithLeadScoreRules || isAssociatedWithWorkflow) { return(tagResponse); } return(Merge(request.TagViewModel)); }
private SaveTagResponse Merge(TagViewModel tagviewmodel) { Tag tag = new Tag(); SaveTagResponse tagResponse = new SaveTagResponse(); Tag existingTag = tagRepository.FindBy(tagviewmodel.TagID); if (existingTag == null) { Logger.Current.Informational("Logging If ExistingTag is Null TagId :" + tagviewmodel.TagID); tag = Mapper.Map <TagViewModel, Tag>(tagviewmodel); isTagValid(tag); tagRepository.Insert(tag); Tag newtag = unitOfWork.Commit() as Tag; TagViewModel tagViewModel = Mapper.Map <Tag, TagViewModel>(newtag); tagResponse.TagViewModel = tagViewModel; tagRepository.MergeTags(tagviewmodel.sourceTagID, tagViewModel.TagID, tagviewmodel.AccountID); indexingService.RemoveTag(tagviewmodel.sourceTagID, tagviewmodel.AccountID); // newtag.TagNameAutoComplete.Output = newtag.LeadScoreTag == true ? newtag.TagName + " *" : newtag.TagName; indexingService.IndexTag(newtag); var contacts = tagRepository.GetContactsByTag(newtag.Id, tagviewmodel.AccountID); contactService.ContactIndexing(new ContactIndexingRequest() { ContactIds = contacts, Ids = contacts.ToLookup(o => o, o => { return(true); }) }); accountService.ScheduleAnalyticsRefresh(tagViewModel.TagID, (byte)IndexType.Tags); } else { Logger.Current.Informational("Logging If ExistingTag is Not Null TagId :" + existingTag.Id); tagRepository.MergeTags(tagviewmodel.sourceTagID, existingTag.Id, tagviewmodel.AccountID); var contacts = tagRepository.GetContactsByTag(existingTag.Id, tagviewmodel.AccountID); contactService.ContactIndexing(new ContactIndexingRequest() { ContactIds = contacts, Ids = contacts.ToLookup(o => o, o => { return(true); }) }); indexingService.RemoveTag(tagviewmodel.sourceTagID, tagviewmodel.AccountID); accountService.ScheduleAnalyticsRefresh(existingTag.Id, (byte)IndexType.Tags); } return(tagResponse); }
public SaveTagResponse SaveTag(SaveTagRequest request) { Logger.Current.Verbose("Request to save the tag."); Tag tag = Mapper.Map <TagViewModel, Tag>(request.TagViewModel); isTagValid(tag); if (tag.Id == 0 && request.TagViewModel.ContactId == 0) { IsDuplicateTag(tag); } Tag persistedTag = tagRepository.SaveContactTag(request.TagViewModel.ContactId, request.TagViewModel.TagName, request.TagViewModel.TagID, request.TagViewModel.AccountID, request.TagViewModel.CreatedBy); unitOfWork.Commit(); addToTopic(persistedTag.Id, request.TagViewModel.AccountID, request.TagViewModel.ContactId, request.TagViewModel.CreatedBy, true); if (request.TagViewModel.ContactId != 0) { contactService.ContactIndexing(new ContactIndexingRequest() { ContactIds = new List <int>() { request.TagViewModel.ContactId }, Ids = new Dictionary <int, bool>() { { request.TagViewModel.ContactId, true } }.ToLookup(o => o.Key, o => o.Value) }); } //persistedTag.TagNameAutoComplete.Output = persistedTag.LeadScoreTag == true ? persistedTag.TagName + " *" : persistedTag.TagName; indexingService.IndexTag(persistedTag); request.TagViewModel.TagID = persistedTag.Id; SaveTagResponse response = new SaveTagResponse(); response.TagViewModel = request.TagViewModel; return(response); }
public JsonResult ContinueMerging(string tagViewModel) { TagViewModel viewModel = JsonConvert.DeserializeObject <TagViewModel>(tagViewModel); viewModel.AccountID = UserExtensions.ToAccountID(this.Identity); SaveTagRequest request = new SaveTagRequest() { TagViewModel = viewModel }; SaveTagResponse response = tagService.ContinueMergeTag(request); return(Json(new { success = true, response = new { IsInvolvedInLeadScore = response.IsAssociatedWithLeadScoreRules, IsInvolvedInWorkflows = response.IsAssociatedWithWorkflows } }, JsonRequestBehavior.AllowGet)); }
public JsonResult MergeTag(string tagViewModel) { TagViewModel viewModel = JsonConvert.DeserializeObject <TagViewModel>(tagViewModel); viewModel.AccountID = UserExtensions.ToAccountID(this.Identity); Logger.Current.Informational("Logging Tag Information while merging tags: TagID " + viewModel.TagID + ", SourceTagId: " + viewModel.sourceTagID); SaveTagRequest request = new SaveTagRequest() { TagViewModel = viewModel }; SaveTagResponse response = tagService.MergeTag(request); return(Json(new { success = true, response = new { IsInvolvedInLeadScore = response.IsAssociatedWithLeadScoreRules, IsInvolvedInWorkflows = response.IsAssociatedWithWorkflows } }, JsonRequestBehavior.AllowGet)); }