Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public HttpResponseMessage PostTag(TagViewModel viewModel)
        {
            SaveTagResponse response = tagService.SaveTag(new SaveTagRequest()
            {
                TagViewModel = viewModel
            });

            return(Request.BuildResponse(response));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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));
        }