Esempio n. 1
0
        public ActionResult _AddLeadScore()
        {
            LeadScoreRuleViewModel viewModel = new LeadScoreRuleViewModel();

            viewModel.AccountID = this.Identity.ToAccountID();
            var dropdownValues = cachingService.GetDropdownValues(this.Identity.ToAccountID());

            viewModel.TourTypes       = dropdownValues.Where(s => s.DropdownID == (byte)DropdownFieldTypes.TourType).Select(s => s.DropdownValuesList).ToList().FirstOrDefault().Where(d => d.IsActive == true);
            viewModel.LeadsourceTypes = dropdownValues.Where(s => s.DropdownID == (byte)DropdownFieldTypes.LeadSources).Select(s => s.DropdownValuesList).ToList().FirstOrDefault().Where(d => d.IsActive == true);
            viewModel.NoteCategories  = dropdownValues.Where(s => s.DropdownID == (byte)DropdownFieldTypes.NoteCategory).Select(s => s.DropdownValuesList).ToList().FirstOrDefault().Where(d => d.IsActive == true);
            viewModel.ActionTypes     = dropdownValues.Where(s => s.DropdownID == (byte)DropdownFieldTypes.ActionType).Select(s => s.DropdownValuesList).ToList().FirstOrDefault().Where(d => d.IsActive == true);
            GetLeadScoreCategoriesResponse categoriesResponse = leadScoreService.GetLeadScoreCategories(new GetLeadScoreCategoriesRequest()
            {
            });

            viewModel.Categories = categoriesResponse.Categories;
            GetLeadScoreConditionsResponse conditionsResponce = leadScoreService.GetLeadScoreConditions(new GetLeadScoreConditionsRequest()
            {
            });

            viewModel.Conditions = conditionsResponce.Conditions;
            var leadScoreConditionValues = new List <LeadScoreConditionValueViewModel>();
            var newConditionValue        = new LeadScoreConditionValueViewModel()
            {
                LeadScoreConditionValueId = 0,
                LeadScoreRuleId           = 0,
                Value     = "",
                ValueType = LeadScoreValueType.PageDuration
            };

            leadScoreConditionValues.Add(newConditionValue);
            viewModel.LeadScoreConditionValues = leadScoreConditionValues;
            return(PartialView("_AddEditRule", viewModel));
        }
        public GetLeadScoreResponse GetLeadScoreRule(GetLeadScoreRequest request)
        {
            GetLeadScoreResponse response = new GetLeadScoreResponse();

            LeadScoreRule leadScoreRule = leadScoreRuleRepository.FindBy(request.Id);

            if (leadScoreRule == null)
            {
                response.Exception = GetLeadScoreNotFoundException();
            }
            else
            {
                LeadScoreRuleViewModel leadScoreRuleViewModel = Mapper.Map <LeadScoreRule, LeadScoreRuleViewModel>(leadScoreRule);
                if ((leadScoreRuleViewModel.ConditionID == LeadScoreConditionType.ContactActionTagAdded || leadScoreRuleViewModel.ConditionID == LeadScoreConditionType.ContactNoteTagAdded ||
                     leadScoreRuleViewModel.ConditionID == LeadScoreConditionType.ContactTagAdded) && leadScoreRuleViewModel.SelectedTagID != null)
                {
                    IEnumerable <Tag>          Tags    = leadScoreRuleRepository.GetTags(leadScoreRuleViewModel.SelectedTagID);
                    IEnumerable <TagViewModel> TagData = Mapper.Map <IEnumerable <Tag>, IEnumerable <TagViewModel> >(Tags);
                    foreach (var tag in TagData)
                    {
                        tag.TagName += " *";
                    }
                    leadScoreRuleViewModel.TagsList = TagData;
                }
                response.LeadScoreViewModel = leadScoreRuleViewModel;
            }
            return(response);
        }
Esempio n. 3
0
        public ActionResult RulesList(int?accountId)
        {
            LeadScoreRuleViewModel viewModel = new LeadScoreRuleViewModel();

            ViewBag.leadscoreID = 0;
            short ItemsPerPage = default(short);

            short.TryParse(this.Identity.ToItemsPerPage(), out ItemsPerPage);
            ViewBag.ItemsPerPage = ItemsPerPage;
            return(View("RulesList", viewModel));
        }
        public void UpdateLeadScoreRule_ValidRule_Succeed()
        {
            IEnumerable <LeadScoreRuleViewModel> leadScorerulesList = LeadScoreRuleMockData.ListofLeadScoreRules();
            LeadScoreRuleViewModel model = leadScorerulesList.FirstOrDefault(lsr => lsr.LeadScoreRuleID == 1);

            mockLeadScoreRuleRepository.Setup(lsr => lsr.Update(It.IsAny <LeadScoreRule>())).Verifiable("Error ocuured while calling repository method");
            UpdateLeadScoreRuleResponse response = leadScoreRuleService.UpdateRule(new UpdateLeadScoreRuleRequest()
            {
                LeadScoreRuleViewModel = model
            });

            mockRepository.VerifyAll();
        }
        public void InsertLeadScoreRule_ValidRule_Succeed()
        {
            LeadScoreRuleViewModel viewModel = LeadScoreRuleMockData.GetLeadscoreRuleViewModel();

            mockLeadScoreRuleRepository.Setup(mnt => mnt.Insert(It.IsAny <LeadScoreRule>())).Verifiable("Error ocuured while calling repository method");

            InsertLeadScoreRuleResponse response = leadScoreRuleService.CreateRule(new InsertLeadScoreRuleRequest()
            {
                LeadScoreRuleViewModel = viewModel
            });

            mockRepository.VerifyAll();
        }
        public void InsertLeadScoreRule_RunTimeException_ExceptionDetails()
        {
            LeadScoreRuleViewModel leadScoreViewModel = LeadScoreRuleMockData.GetLeadscoreRuleViewModel();

            mockLeadScoreRuleRepository.Setup(c => c.Insert(It.IsAny <LeadScoreRule>())).Throws(new NullReferenceException());
            InsertLeadScoreRuleResponse response = leadScoreRuleService.CreateRule(new InsertLeadScoreRuleRequest()
            {
                LeadScoreRuleViewModel = leadScoreViewModel
            });

            mockRepository.VerifyAll();
            Assert.AreEqual(typeof(NullReferenceException), response.Exception.GetType());
            Assert.AreNotEqual(null, response.Exception);
        }
        public void UpdateLeadScoreRule_ExceptionOccured_Failed()
        {
            IEnumerable <LeadScoreRuleViewModel> leadScorerulesList = LeadScoreRuleMockData.ListofLeadScoreRules();
            LeadScoreRuleViewModel model = leadScorerulesList.FirstOrDefault(lsr => lsr.LeadScoreRuleID == 1);

            mockLeadScoreRuleRepository.Setup(lsr => lsr.Update(It.IsAny <LeadScoreRule>())).Throws(new NullReferenceException());
            UpdateLeadScoreRuleResponse response = leadScoreRuleService.UpdateRule(new UpdateLeadScoreRuleRequest()
            {
                LeadScoreRuleViewModel = model
            });

            mockRepository.VerifyAll();
            Assert.AreEqual(typeof(NullReferenceException), response.Exception.GetType());
            Assert.AreNotEqual(null, response.Exception);
        }
Esempio n. 8
0
        public JsonResult ChangeLeadScore(string leadScoreRoleViewModel)
        {
            LeadScoreRuleViewModel viewModel = JsonConvert.DeserializeObject <LeadScoreRuleViewModel>(leadScoreRoleViewModel);

            viewModel.ModifiedBy = UserExtensions.ToUserID(this.Identity);
            UpdateLeadScoreRuleRequest request = new UpdateLeadScoreRuleRequest()
            {
                LeadScoreRuleViewModel = viewModel
            };

            leadScoreService.UpdateRule(request);
            return(Json(new
            {
                success = true,
                response = ""
            }, JsonRequestBehavior.AllowGet));
        }
        public UpdateLeadScoreRuleResponse UpdateRule(UpdateLeadScoreRuleRequest request)
        {
            LeadScoreRuleViewModel ruleVM        = request.LeadScoreRuleViewModel;
            LeadScoreRule          leadScoreRule = Mapper.Map <LeadScoreRuleViewModel, LeadScoreRule>(ruleVM);

            isLeadScoreValid(leadScoreRule);
            bool isDuplicate = leadScoreRuleRepository.IsDuplicate(leadScoreRule);

            if (isDuplicate)
            {
                throw new UnsupportedOperationException("[|Rule already exists.|]");
            }


            if ((leadScoreRule.ConditionID == LeadScoreConditionType.ContactNoteTagAdded ||
                 leadScoreRule.ConditionID == LeadScoreConditionType.ContactActionTagAdded) &&
                leadScoreRule.Tags != null)
            {
                List <int> TagIDs             = new List <int>();
                var        newTags            = ruleVM.TagsList.Where(i => i.TagID == 0);
                var        alreadycreatedtags = ruleVM.TagsList.Where(i => i.TagID != 0);
                TagIDs.AddRange(alreadycreatedtags.Select(x => x.TagID));
                foreach (TagViewModel tag in newTags)
                {
                    var insertedtag = tagService.SaveTag(new SaveTagRequest()
                    {
                        TagViewModel = tag
                    }).TagViewModel;
                    TagIDs.Add(insertedtag.TagID);
                }
                leadScoreRule.SelectedTagID = TagIDs.ToArray();
            }

            leadScoreRuleRepository.UpdateLeadScoreRules(leadScoreRule);

            if ((leadScoreRule.ConditionID == LeadScoreConditionType.ContactActionTagAdded ||
                 leadScoreRule.ConditionID == LeadScoreConditionType.ContactNoteTagAdded))
            {
                Thread t2 = new Thread(delegate()
                {
                    UpdateLeadScoreTags(request.AccountId);
                });
                t2.Start();
            }
            return(new UpdateLeadScoreRuleResponse());
        }
Esempio n. 10
0
        public InsertLeadScoreRuleResponse CreateRule(InsertLeadScoreRuleRequest request)
        {
            Logger.Current.Verbose("Request for inserting LeadScore");
            LeadScoreRuleViewModel ruleVM        = request.LeadScoreRuleViewModel;
            LeadScoreRule          leadScoreRule = Mapper.Map <LeadScoreRuleViewModel, LeadScoreRule>(ruleVM);

            isLeadScoreValid(leadScoreRule);
            bool isDuplicate = leadScoreRuleRepository.IsDuplicate(leadScoreRule);

            if (isDuplicate)
            {
                throw new UnsupportedOperationException("[|Rule already exists.|]");
            }

            if ((leadScoreRule.ConditionID == LeadScoreConditionType.ContactNoteTagAdded || leadScoreRule.ConditionID == LeadScoreConditionType.ContactActionTagAdded) && leadScoreRule.Tags != null)
            {
                List <int> TagIDs             = new List <int>();
                var        newTags            = ruleVM.TagsList.Where(i => i.TagID == 0);
                var        alreadycreatedtags = ruleVM.TagsList.Where(i => i.TagID != 0);
                TagIDs.AddRange(alreadycreatedtags.Select(x => x.TagID));
                foreach (TagViewModel tag in newTags)
                {
                    var insertedtag = tagService.SaveTag(new SaveTagRequest()
                    {
                        TagViewModel = tag
                    }).TagViewModel;
                    TagIDs.Add(insertedtag.TagID);
                }
                leadScoreRule.SelectedTagID = TagIDs.ToArray();
            }

            int MaxLeadScoreID = leadScoreRuleRepository.GetMaxLeadScoreRuleID();

            MaxLeadScoreID++;
            leadScoreRuleRepository.InsertLeadScoreRules(leadScoreRule, MaxLeadScoreID);

            if ((leadScoreRule.ConditionID == LeadScoreConditionType.ContactActionTagAdded ||
                 leadScoreRule.ConditionID == LeadScoreConditionType.ContactNoteTagAdded) &&
                leadScoreRule.SelectedTagID != null && leadScoreRule.SelectedTagID.Any())
            {
                IEnumerable <Tag> tags = tagRepository.FindByIDs(leadScoreRule.SelectedTagID);
                ReIndexLeadScoreTags(tags);
            }
            return(new InsertLeadScoreRuleResponse());
        }
Esempio n. 11
0
        public static LeadScoreRuleViewModel GetLeadscoreRuleViewModel()
        {
            CampaignEntryViewModel campaign = new CampaignEntryViewModel()
            {
                Id = 1, Name = "This is Sample"
            };

            LeadScoreRuleViewModel leadScoreViewModel = new LeadScoreRuleViewModel();

            leadScoreViewModel.ConditionDescription = "Sample";
            leadScoreViewModel.Condition            = new Condition()
            {
                Id = 1
            };
            leadScoreViewModel.Campaigns      = campaign;
            leadScoreViewModel.ConditionValue = "1";
            leadScoreViewModel.AccountID      = 1;
            leadScoreViewModel.Score          = 100;
            return(leadScoreViewModel);
        }
Esempio n. 12
0
        public JsonResult UpdateLeadScore(LeadScoreRuleViewModel viewModel)
        {
            int UserID = this.Identity.ToUserID();

            viewModel.ModifiedBy = UserID;
            viewModel.ModifiedOn = DateTime.Now.ToUniversalTime();
            viewModel.CreatedOn  = viewModel.CreatedOn.ToUniversalTime();
            UpdateLeadScoreRuleRequest request = new UpdateLeadScoreRuleRequest()
            {
                LeadScoreRuleViewModel = viewModel,
                RequestedBy            = UserID,
                AccountId = this.Identity.ToAccountID()
            };

            leadScoreService.UpdateRule(request);
            return(Json(new
            {
                success = true,
                response = ""
            }, JsonRequestBehavior.AllowGet));
        }