public void LogUserActivity(TaskStep entity,
                                    DAL.enums.ActionTypeEnum actionType, bool onCreate = false)
        {
            ActivityAction activityAction = new ActivityAction();

            activityAction.ForTask      = entity.Task;
            activityAction.ActivityDate = DateTime.UtcNow;

            if (entity.Task.IsTask)
            {
                activityAction.ForTarget = FindNearestTargetParent(activityAction.ForTask);
            }
            else
            {
                activityAction.ForTarget = entity.Task;
            }

            activityAction.ActionType  = actionType;
            activityAction.ForTaskStep = entity;
            activityAction.ByUser      = _userService.GetCurrentUser();

            activityAction.ActionObjectType = DAL.enums.ActionObjectTypeEnum.taskStep;
            _context.ActivityActions.Add(activityAction);

            _context.SaveChanges();
        }
        public void LogUserActivity(Comment entity,
                                    DAL.enums.ActionTypeEnum actionType, bool onCreate = false)
        {
            ActivityAction activityAction = new ActivityAction();

            activityAction.ForTask = entity.ToTaskOrTarget;

            checkOnCreateBase(onCreate, activityAction);

            if (entity.ToTaskOrTarget.IsTask)
            {
                activityAction.ForTarget = FindNearestTargetParent(activityAction.ForTask);
            }
            else
            {
                activityAction.ForTarget = entity.ToTaskOrTarget;
            }

            activityAction.ActionType   = actionType;
            activityAction.ByUser       = _userService.GetCurrentUser();
            activityAction.ForComment   = entity;
            activityAction.ActivityDate = DateTime.UtcNow;

            activityAction.ActionObjectType = DAL.enums.ActionObjectTypeEnum.comment;

            _context.ActivityActions.Add(activityAction);

            _context.SaveChanges();
        }
        public void LogUserActivity(PlanTask entity,
                                    DAL.enums.ActionTypeEnum actionType, bool onCreate = false)
        {
            ActivityAction activityAction = new ActivityAction();

            activityAction.ForTask = entity;

            if (entity.IsTask)
            {
                activityAction.ForTarget = FindNearestTargetParent(activityAction.ForTask);
            }
            else
            {
                activityAction.ForTarget = entity;
            }

            _context.Entry(activityAction.ForTarget.Creator).State = EntityState.Unchanged;
            activityAction.ActionObjectType = DAL.enums.ActionObjectTypeEnum.task;
            activityAction.ActionType       = actionType;
            activityAction.ByUser           = _userService.GetCurrentUser();
            activityAction.ActivityDate     = DateTime.UtcNow;
            checkOnCreateBase(onCreate, activityAction);



            if (entity.Status == DAL.enums.TaskStatus.Complete)
            {
                if (entity.IsTask)
                {
                    activityAction.ActionType = DAL.enums.ActionTypeEnum.CompletedTask;
                }
                else
                {
                    activityAction.ActionType = DAL.enums.ActionTypeEnum.CompletedTarget;
                }
            }

            _context.ActivityActions.Add(activityAction);

            _context.SaveChanges();
        }