コード例 #1
0
        public MessageHandlerStatus Handle(MessageQueues.Message message)
        {
            try
            {
                if (message.LeadScoreConditionType != (int)LeadScoreConditionType.ContactVisitsWebsite)
                {
                    return(MessageHandlerStatus.InvalidMessageHandler);
                }

                var leadScoreRuleResponse = leadScoreRuleService.GetLeadScoreRule(
                    new GetLeadScoreRuleByConditionRequest()
                {
                    AccountId      = message.AccountId,
                    Condition      = LeadScoreConditionType.ContactVisitsWebsite,
                    ConditionValue = message.ConditionValue
                });

                LeadScoreRule rule = leadScoreRuleResponse.Rule;

                if (rule == null)
                {
                    return(MessageHandlerStatus.LeadScoreRuleNotDefined);
                }

                //var response = leadScoreService.IsScoreAudited(
                //    new LeadScoreAuditCheckRequest()
                //    {
                //        AccountId = message.AccountId,
                //        ContactId = message.ContactId,
                //        Condition = LeadScoreConditionType.ContactVisitsWebsite,
                //        ConditionValue = message.ConditionValue,
                //        EntityId = message.EntityId
                //    });

                //if (response.IsAudited)
                //    return MessageHandlerStatus.DuplicateLeadScoreRequest;

                List <LeadScoreRule> rules = new List <LeadScoreRule>();
                rules.Add(rule);
                Logger.Current.Informational("Auditing the lead score for web visit for message:" + message.MessageId);
                var insertScoreResponse = leadScoreService.InsertLeadScore(new InsertLeadScoreRequest()
                {
                    Condition      = LeadScoreConditionType.ContactVisitsWebsite,
                    ContactId      = message.ContactId,
                    ConditionValue = message.ConditionValue,
                    AccountId      = message.AccountId,
                    RequestedBy    = message.UserId,
                    EntityId       = message.EntityId,
                    Rules          = rules
                });

                return(GetLeadScoreAuditStatus(message, insertScoreResponse.Exception));
            }
            catch (Exception ex)
            {
                Logger.Current.Error("Exception occured while handling the Message.", ex);
                return(MessageHandlerStatus.FailedToAuditScore);
            }
        }
コード例 #2
0
        public MessageHandlerStatus Handle(MessageQueues.Message message)
        {
            try
            {
                if (message.LeadScoreConditionType != (int)LeadScoreConditionType.ContactLeadSource)
                {
                    return(MessageHandlerStatus.InvalidMessageHandler);
                }

                var leadScoreRuleResponse = leadScoreRuleService.GetLeadScoreRules(
                    new GetLeadScoreRuleByConditionRequest()
                {
                    AccountId      = message.AccountId,
                    Condition      = LeadScoreConditionType.ContactLeadSource,
                    ConditionValue = message.LinkedEntityId.ToString()
                });

                //LeadScoreRule rule = leadScoreRuleResponse.Rule;

                //if (rule == null)
                //    return MessageHandlerStatus.LeadScoreRuleNotDefined;

                var response = leadScoreService.IsScoreAudited(
                    new LeadScoreAuditCheckRequest()
                {
                    AccountId      = message.AccountId,
                    ContactId      = message.ContactId,
                    Condition      = LeadScoreConditionType.ContactLeadSource,
                    ConditionValue = message.LinkedEntityId.ToString(),
                    EntityId       = message.LinkedEntityId
                });

                if (response.IsAudited)
                {
                    return(MessageHandlerStatus.DuplicateLeadScoreRequest);
                }

                Logger.Current.Informational("Auditing the lead score for contact note tag for message:" + message.MessageId);
                var insertScoreResponse = leadScoreService.InsertLeadScore(new InsertLeadScoreRequest()
                {
                    Condition      = LeadScoreConditionType.ContactLeadSource,
                    ContactId      = message.ContactId,
                    ConditionValue = message.LinkedEntityId.ToString(),
                    AccountId      = message.AccountId,
                    RequestedBy    = message.UserId,
                    EntityId       = message.LinkedEntityId,
                    Rules          = leadScoreRuleResponse.Rules
                });

                return(GetLeadScoreAuditStatus(message, insertScoreResponse.Exception));
            }
            catch (Exception ex)
            {
                Logger.Current.Error("Exception occured while handling the Message.", ex);
                return(MessageHandlerStatus.FailedToAuditScore);
            }
        }
コード例 #3
0
 public override void OnEntry(MessageQueues.Message message)
 {
     workflowService.InsertContactWorkflowAudit(new InsertContactWorkflowAuditRequest()
     {
         WorkflowId       = message.WorkflowId,
         WorkflowActionId = StateId,
         ContactId        = message.ContactId,
         AccountId        = message.AccountId,
         MessageId        = message.MessageId
     });
 }
コード例 #4
0
 protected MessageHandlerStatus GetLeadScoreAuditStatus(MessageQueues.Message message, Exception exception = null)
 {
     if (exception == null)
     {
         Logger.Current.Informational("Audited successfully." + message.MessageId);
         return(MessageHandlerStatus.LeadScoreAuditedSuccessfully);
     }
     else
     {
         Logger.Current.Error("Error occurred while auditing the lead score." + message.MessageId, exception);
         return(MessageHandlerStatus.FailedToAuditScore);
     }
 }
コード例 #5
0
        public MessageHandlerStatus Handle(MessageQueues.Message message)
        {
            try
            {
                if (message.LeadScoreConditionType != (int)LeadScoreConditionType.PageDuration)
                {
                    return(MessageHandlerStatus.InvalidMessageHandler);
                }
                var conditionValues = new List <LeadScoreConditionValueViewModel>();
                conditionValues.Add(new LeadScoreConditionValueViewModel()
                {
                    Value     = message.LinkedEntityId.ToString(),
                    ValueType = LeadScoreValueType.PageDuration
                });
                var leadScoreRuleResponse = leadScoreRuleService.GetLeadScoreRules(
                    new GetLeadScoreRuleByConditionRequest()
                {
                    AccountId      = message.AccountId,
                    Condition      = LeadScoreConditionType.PageDuration,
                    ConditionValue = message.ConditionValue
                });
                Logger.Current.Informational("Auditing the lead score for A PAGE DURATION OF for message:" + message.MessageId);
                var insertScoreResponse = leadScoreService.InsertLeadScore(new InsertLeadScoreRequest()
                {
                    Condition      = LeadScoreConditionType.PageDuration,
                    ContactId      = message.ContactId,
                    ConditionValue = message.EntityId.ToString(),
                    AccountId      = message.AccountId,
                    RequestedBy    = message.UserId,
                    EntityId       = message.EntityId,
                    Rules          = leadScoreRuleResponse.Rules
                });

                if (insertScoreResponse.Exception == null)
                {
                    Logger.Current.Informational("Audited successfully." + message.MessageId);
                    return(MessageHandlerStatus.LeadScoreAuditedSuccessfully);
                }
                else
                {
                    Logger.Current.Error("Error occurred while auditing the lead score." + message.MessageId, insertScoreResponse.Exception);
                    return(MessageHandlerStatus.FailedToAuditScore);
                }
            }
            catch (Exception ex)
            {
                Logger.Current.Error("Exception occured while handling the Message.", ex);
                return(MessageHandlerStatus.FailedToAuditScore);
            }
        }
コード例 #6
0
        public MessageHandlerStatus Handle(MessageQueues.Message message)
        {
            try
            {
                if (message.LeadScoreConditionType != (int)LeadScoreConditionType.AnEmailSent)
                {
                    return(MessageHandlerStatus.InvalidMessageHandler);
                }

                var leadScoreRuleResponse = leadScoreRuleService.GetLeadScoreRule(
                    new GetLeadScoreRuleByConditionRequest()
                {
                    AccountId      = message.AccountId,
                    Condition      = LeadScoreConditionType.AnEmailSent,
                    ConditionValue = null
                });

                LeadScoreRule rule = leadScoreRuleResponse.Rule;
                if (rule == null)
                {
                    return(MessageHandlerStatus.LeadScoreRuleNotDefined);
                }

                List <LeadScoreRule> rules = new List <LeadScoreRule>();
                rules.Add(leadScoreRuleResponse.Rule);

                Logger.Current.Informational("Auditing the lead score for contact email sent:" + message.MessageId);
                var insertScoreResponse = leadScoreService.InsertLeadScore(new InsertLeadScoreRequest()
                {
                    Condition      = LeadScoreConditionType.AnEmailSent,
                    ConditionValue = message.LinkedEntityId.ToString(),
                    ContactId      = message.ContactId,
                    AccountId      = message.AccountId,
                    RequestedBy    = message.UserId,
                    EntityId       = message.EntityId,
                    Rules          = rules
                });

                return(GetLeadScoreAuditStatus(message, insertScoreResponse.Exception));
            }
            catch (Exception ex)
            {
                Logger.Current.Error("Exception occured while handling the Message.", ex);
                return(MessageHandlerStatus.FailedToAuditScore);
            }
        }
コード例 #7
0
 public override void OnExit(MessageQueues.Message message)
 {
     throw new NotImplementedException();
 }
コード例 #8
0
        public MessageHandlerStatus Handle(MessageQueues.Message message)
        {
            try
            {
                if (message.LeadScoreConditionType != (int)LeadScoreConditionType.ContactSubmitsForm)
                {
                    return(MessageHandlerStatus.InvalidMessageHandler);
                }

                //var leadScoreRuleResponse = leadScoreRuleService.GetLeadScoreRule(
                //new GetLeadScoreRuleByConditionRequest()
                //{
                //    AccountId = message.AccountId,
                //    Condition = LeadScoreConditionType.ContactSubmitsForm,
                //    ConditionValue = message.EntityId.ToString()
                //});

                //LeadScoreRule rule = leadScoreRuleResponse.Rule;
                GetLeadScoreRuleByConditionRequest request = new GetLeadScoreRuleByConditionRequest()
                {
                    AccountId      = message.AccountId,
                    Condition      = LeadScoreConditionType.ContactSubmitsForm,
                    ConditionValue = message.EntityId.ToString()
                };


                GetLeadScoreRuleByConditionResponse response = leadScoreRuleService.GetLeadScoreRules(request);
                var rules = response.Rules;

                Logger.Current.Informational("Auditing the lead score for form submission for message:" + message.MessageId);
                var insertScoreResponse = leadScoreService.InsertLeadScore(new InsertLeadScoreRequest()
                {
                    Condition      = LeadScoreConditionType.ContactSubmitsForm,
                    ContactId      = message.ContactId,
                    ConditionValue = message.EntityId.ToString(),
                    AccountId      = message.AccountId,
                    RequestedBy    = message.UserId,
                    EntityId       = message.EntityId,
                    Rules          = rules
                });

                if (insertScoreResponse.Exception == null)
                {
                    Logger.Current.Informational("Audited successfully." + message.MessageId);
                    return(MessageHandlerStatus.LeadScoreAuditedSuccessfully);
                }
                else
                {
                    Logger.Current.Error("Error occurred while auditing the lead score." + message.MessageId, insertScoreResponse.Exception);
                    return(MessageHandlerStatus.FailedToAuditScore);
                }
                // return MessageHandlerStatus.LeadScoreAuditedSuccessfully;
                //var response = leadScoreService.IsScoreAudited(
                //    new LeadScoreAuditCheckRequest()
                //    {
                //        AccountId = message.AccountId,
                //        ContactId = message.ContactId,
                //        Condition = LeadScoreConditionType.ContactSubmitsForm,
                //        ConditionValue = message.EntityId.ToString(),
                //        EntityId = message.EntityId
                //    });

                //if (response.IsAudited)
                //    return MessageHandlerStatus.DuplicateLeadScoreRequest;
            }
            catch (Exception ex)
            {
                Logger.Current.Error("Exception occured while handling the Message.", ex);
                return(MessageHandlerStatus.FailedToAuditScore);
            }
        }