Пример #1
0
        public void UpdateLeadScoreRule(int accountId, int by)
        {
            using (CRMDb db = new CRMDb())
            {
                var rule = db.LeadScoreRules.Where(r => r.ConditionValue == this.WorkflowActionID.ToString()).FirstOrDefault();

                if (rule != null)
                {
                    var isActionDeleted = db.WorkflowActions.Where(a => a.WorkflowActionID == this.WorkflowActionID).Select(a => a.IsDeleted).FirstOrDefault();
                    if (isActionDeleted)
                    {
                        db.LeadScoreRules.Remove(rule);
                    }
                    else
                    {
                        rule.Score      = this.LeadScoreValue;
                        rule.ModifiedBy = by;
                        rule.ModifiedOn = DateTime.Now.ToUniversalTime();
                    }
                }
                else
                {
                    InsertLeadScoreRule(accountId, by, db);
                }
                db.SaveChanges();
            }
        }
        public override BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db)
        {
            var WorkflowNotifyUserActionsDb = db.WorkflowNotifyUserActions.Where(u => u.WorkflowActionID == workflowActionId).FirstOrDefault();

            if (WorkflowNotifyUserActionsDb != null && WorkflowNotifyUserActionsDb.UserID != null)
            {
                IEnumerable <int> userIds = !string.IsNullOrEmpty(WorkflowNotifyUserActionsDb.UserID) ? WorkflowNotifyUserActionsDb.UserID.Split(',').Select(se => Convert.ToInt32(se)): new List <int>()
                {
                };
                if (userIds.IsAny())
                {
                    WorkflowNotifyUserActionsDb.UserNames = db.Users.Where(w => userIds.Contains(w.UserID) && w.IsDeleted == false && w.Status == Status.Active).Select(s => s.FirstName + s.LastName);
                }
                else
                {
                    WorkflowNotifyUserActionsDb.UserNames = new List <string>();
                }
            }
            else if (WorkflowNotifyUserActionsDb != null && WorkflowNotifyUserActionsDb.NotificationFields != null)
            {
                IEnumerable <int> notificationFieldIds = !string.IsNullOrEmpty(WorkflowNotifyUserActionsDb.NotificationFields) ? WorkflowNotifyUserActionsDb.NotificationFields.Split(',').Select(se => Convert.ToInt32(se)): new List <int>()
                {
                };
            }
            return(WorkflowNotifyUserActionsDb);
        }
        public void Save(int workFlowUserAssignmentActionID)
        {
            using (var db = new CRMDb())
            {
                if (this.RoundRobinContactAssignmentID == 0)
                {
                    var assignment = GetObject();
                    assignment.WorkFlowUserAssignmentActionID = workFlowUserAssignmentActionID;

                    db.RoundRobinAssignment.Add(assignment);
                    db.SaveChanges();
                }
                else
                {
                    var assignment = GetObject();
                    if (workFlowUserAssignmentActionID != 0)
                    {
                        assignment.WorkFlowUserAssignmentActionID = workFlowUserAssignmentActionID;

                        db.Entry(assignment).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                    }
                }
            }
        }
Пример #4
0
        public BaseWorkflowActionsDb GetAction(CRMDb db)
        {
            var registeredActions = RegisterActions();

            return(registeredActions[(WorkflowActionType)WorkflowActionTypeID]
                   .Get(WorkflowActionID, db));
        }
 public override void Save(CRMDb db)
 {
     if (WorkflowDelayTimerActionID == 0)
     {
         db.WorkFlowDelayTimerActions.Add(this);
     }
     else
     {
         db.Entry(this).State = EntityState.Modified;
     }
 }
 public override void Save(CRMDb db)
 {
     if (TriggerWorkflowActionID == 0)
     {
         var triggerWorkflowDb = this;
         db.TriggerWorkflowActions.Add(triggerWorkflowDb);
     }
     else
     {
         db.Entry(this).State = EntityState.Modified;
     }
 }
Пример #7
0
 public override void Save(CRMDb db)
 {
     if (WorkflowContactFieldActionID == 0)
     {
         if ((this.FieldID.HasValue && this.FieldID.Value > 0) || (this.DropdownValueID.HasValue && this.DropdownValueID.Value > 0))
         {
             db.WorkflowContactFieldActions.Add(this);
         }
     }
     else
     {
         db.Entry(this).State = EntityState.Modified;
     }
 }
 public override void Save(CRMDb db)
 {
     if (WorkflowLifeCycleActionID == 0)
     {
         if (this.LifecycleDropdownValueID > 0)
         {
             db.WorkflowLifeCycleActions.Add(this);
         }
     }
     else
     {
         db.Entry(this).State = EntityState.Modified;
     }
 }
Пример #9
0
 public override void Save(CRMDb db)
 {
     if (WorkflowTagActionID == 0)
     {
         if (this.TagID > 0)
         {
             db.WorkflowTagActions.Add(this);
         }
     }
     else
     {
         db.Entry(this).State = EntityState.Modified;
     }
 }
        public override void Save(CRMDb db)
        {
            if (WorkFlowEmailNotificationActionID == 0)
            {
                if (this.FromEmailID > 0)
                {
                    db.WorkflowEmailNotificationAction.Add(this);
                }
            }

            else
            {
                db.Entry(this).State = EntityState.Modified;
            }
        }
Пример #11
0
        private void InsertLeadScoreRule(int accountId, int by, CRMDb db)
        {
            var rule = new LeadScoreRulesDb()
            {
                AccountID            = accountId,
                ConditionDescription = "Update lead score through automation",
                ConditionID          = 10,
                ConditionValue       = this.WorkflowActionID.ToString(),
                Score      = this.LeadScoreValue,
                IsActive   = true,
                CreatedBy  = by,
                ModifiedBy = by,
                CreatedOn  = DateTime.Now.ToUniversalTime(),
                ModifiedOn = DateTime.Now.ToUniversalTime()
            };

            db.LeadScoreRules.Add(rule);
        }
Пример #12
0
        public void Save(CRMDb db)
        {
            var index = 1;

            if (LinkActions != null)
            {
                LinkActions.Each(la =>
                {
                    index = 1;
                    if (la.Action != null)
                    {
                        if (la.WorkflowActionID == 0)
                        {
                            var wa = new WorkflowActionsDb()
                            {
                                OrderNumber          = index,
                                WorkflowActionTypeID = la.WorkflowActionTypeID,
                                IsSubAction          = true,
                                WorkflowID           = (short)WorkflowID
                            };
                            wa.Save(db);
                        }
                        else
                        {
                            la.OrderNumber = index;
                            la.IsSubAction = true;
                            la.WorkflowID  = (short)WorkflowID;
                            la.Save(db);
                        }
                        la.Action.Save(db);
                        db.SaveChanges();
                        if (!la.IsDeleted)
                        {
                            LinkActionID = la.Action.WorkflowActionID;
                            SaveActionLink(db);
                            db.SaveChanges();
                        }
                        index++;
                    }
                });
            }
        }
Пример #13
0
 public void Save(CRMDb db)
 {
     try
     {
         if (WorkflowActionID == 0)
         {
             db.WorkflowActions.Add(this);
         }
         else
         {
             db.Entry(this).State = EntityState.Modified;
         }
     }
     catch (Exception ex)
     {
         Logger.Current.Error("Error while saving action", ex);
         ex.Data.Clear();
         ex.Data.Add("Workflow", WorkflowID);
     }
 }
Пример #14
0
        public override BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db)
        {
            var action = db.WorkflowCampaignActions.Include(x => x.Campaigns).Include(i => i.WorkflowAction).Where(c => c.WorkflowActionID == workflowActionId).FirstOrDefault();

            try
            {
                action.Links = db.WorkflowCampaignActionLinks.Where(cl => cl.ParentWorkflowActionID == action.WorkflowCampaignActionID).ToList();
                var distinctLinks       = action.Links.Select(l => l.LinkID).Distinct();
                var campaignLinkActions = new List <WorkflowCampaignActionLinksDb>();
                distinctLinks.Each(dl =>
                {
                    var cl          = new WorkflowCampaignActionLinksDb();
                    cl.LinkID       = dl;
                    var actions     = action.Links.Where(al => al.LinkID == dl);
                    var linkActions = new List <WorkflowActionsDb>();
                    actions.Each(a =>
                    {
                        cl.Order                  = a.Order;
                        cl.LinkActionID           = a.LinkActionID;
                        cl.ParentWorkflowActionID = a.ParentWorkflowActionID;
                        if (db.WorkflowActions.Where(aid => aid.WorkflowActionID == a.LinkActionID && !aid.IsDeleted).IsAny())
                        {
                            var linkAction    = db.WorkflowActions.Where(aid => aid.WorkflowActionID == a.LinkActionID && !aid.IsDeleted).FirstOrDefault();
                            linkAction.Action = linkAction.GetAction(db);
                            linkActions.Add(linkAction);
                        }
                    });
                    cl.LinkActions = linkActions;
                    campaignLinkActions.Add(cl);
                });
                action.Links = campaignLinkActions;
            }
            catch (Exception ex)
            {
                Logger.Current.Error("Error while getting link actions", ex);
                ex.Data.Clear();
                ex.Data.Add("Workflow Action ID", workflowActionId);
            }

            return(action);
        }
 public override void Save(CRMDb db)
 {
     if (WorkFlowUserAssignmentActionID == 0)
     {
         db.WorkflowUserAssignmentActions.Add(this);
     }
     else
     {
         var  assignmentsActions = db.WorkflowUserAssignmentActions.AsNoTracking().Where(w => w.WorkFlowUserAssignmentActionID == WorkFlowUserAssignmentActionID).FirstOrDefault();
         bool isScheduleChanged  = assignmentsActions != null ? assignmentsActions.ScheduledID != this.ScheduledID : false;
         if (isScheduleChanged)
         {
             var oldAssignments = db.RoundRobinAssignment.Where(w => w.WorkFlowUserAssignmentActionID == WorkFlowUserAssignmentActionID);
             foreach (var oa in oldAssignments)
             {
                 db.Entry(oa).State = System.Data.Entity.EntityState.Deleted;
             }
         }
         db.Entry(this).State = EntityState.Modified;
     }
 }
        public override BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db)
        {
            var userAssignment = db.WorkflowUserAssignmentActions.Where(ua => ua.WorkflowActionID == workflowActionId).FirstOrDefault();

            if (userAssignment != null)
            {
                userAssignment.RoundRobinContactAssignments = db.RoundRobinAssignment.Where(w => w.WorkFlowUserAssignmentActionID == userAssignment.WorkFlowUserAssignmentActionID);
            }
            if (userAssignment.RoundRobinContactAssignments != null && userAssignment.RoundRobinContactAssignments.Any())
            {
                foreach (var rr in userAssignment.RoundRobinContactAssignments)
                {
                    List <string> userIds     = rr.UserID.Split(',').ToList();
                    var           UserNamesDb = db.Users.Where(w => userIds.Contains(w.UserID.ToString()) && w.IsDeleted == false && w.Status == Status.Active).Select(s => new { Name = s.FirstName + " " + s.LastName, Id = s.UserID });
                    var           UserNames   = new List <string>();
                    foreach (var ID in userIds)
                    {
                        UserNames.Add(UserNamesDb.Where(w => w.Id.ToString() == ID).Select(s => s.Name).FirstOrDefault());
                    }
                    rr.UserNames = UserNames;
                }
            }
            return(userAssignment);
        }
Пример #17
0
 public override BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db)
 {
     return(db.WorkflowTextNotificationActions.Where(tn => tn.WorkflowActionID == workflowActionId).FirstOrDefault());
 }
Пример #18
0
 public abstract BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db);
Пример #19
0
 public abstract void Save(CRMDb db);
 public override BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db)
 {
     return(db.WorkFlowDelayTimerActions.Where(dt => dt.WorkflowActionID == workflowActionId).FirstOrDefault());
 }
 public override BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db)
 {
     return(db.WorkflowLifeCycleActions.Include(c => c.DropdownValues).Where(lc => lc.WorkflowActionID == workflowActionId).FirstOrDefault());
 }
 public override BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db)
 {
     return(db.TriggerWorkflowActions.Where(lc => lc.WorkflowActionID == workflowActionId).Include(i => i.Workflow).FirstOrDefault());
 }
Пример #23
0
 public override BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db)
 {
     return(db.WorkflowContactFieldActions.Include(c => c.Fields).Where(f => f.WorkflowActionID == workflowActionId).FirstOrDefault());
 }
Пример #24
0
 public override BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db)
 {
     return(db.WorkflowLeadScoreActions.Where(cl => cl.WorkflowActionID == workflowActionId).FirstOrDefault());
 }
Пример #25
0
 public void SaveActionLink(CRMDb db)
 {
     db.WorkflowCampaignActionLinks.Add(this);
 }
Пример #26
0
 public override BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db)
 {
     return(db.WorkflowTagActions.Include(g => g.Tags).Where(t => t.WorkflowActionID == workflowActionId).FirstOrDefault());
 }
 public override BaseWorkflowActionsDb Get(int workflowActionId, CRMDb db)
 {
     return(db.WorkflowEmailNotificationAction.Where(cl => cl.WorkflowActionID == workflowActionId).FirstOrDefault());
 }