Пример #1
0
        public ActionViewModel(NotificationAction notificationAction)
        {
            _notificationAction = notificationAction;

            ActionTypes = new[]
            {
                new ComboViewModel <ActionType>("flash the task bar", ActionType.FlashTaskbar),
                new ComboViewModel <ActionType>("show a toast", ActionType.ShowToast),
                //new ComboViewModel<ActionType>("play a sound", ActionType.PlaySound),
            };

            ActionConditions = new[]
            {
                new ComboViewModel <ActionCondition>("always", ActionCondition.None),
                new ComboViewModel <ActionCondition>("when idle for at least", ActionCondition.RoomIdle),
                new ComboViewModel <ActionCondition>("last notification was at least",
                                                     ActionCondition.MinimumTimeSinceLastNotification),
            };


            SelectedActionType      = ActionTypes.FirstOrDefault(at => at.Data == notificationAction.ActionType);
            SelectedActionCondition = ActionConditions.FirstOrDefault(ac => ac.Data == notificationAction.ActionCondition);
            Interval = notificationAction.Interval;
        }
 /// <summary>
 /// Add the condition to the delete trigger action. Action will be executed only when the condition passed.
 /// </summary>
 /// <param name="condition"></param>
 /// <returns></returns>
 public OnDeleteTriggerActions <TTriggerEntity> Condition(Expression <Func <TTriggerEntity, bool> > condition)
 {
     ActionConditions.Add(new OnDeleteTriggerCondition <TTriggerEntity>(condition));
     return(this);
 }
Пример #3
0
        public static bool CheckCondition(ActionConditions conditions)
        {
            if (conditions == ActionConditions.IsHappy &&
                Village.Emotion == Emotion.Happy)
            {
                return(true);
            }

            if (conditions == ActionConditions.MeadEqualsZero &&
                Viking.MeadCount == 0)
            {
                return(true);
            }

            if (conditions == ActionConditions.MeadGreaterZero &&
                Viking.MeadCount > 0)
            {
                return(true);
            }

            if (conditions == ActionConditions.MeadGreaterTwo &&
                Viking.MeadCount > 2)
            {
                return(true);
            }

            if (conditions == ActionConditions.IsSweatDrop &&
                Village.Emotion == Emotion.SweatDrop)
            {
                return(true);
            }

            if (conditions == ActionConditions.IsAngry &&
                Village.Emotion == Emotion.Angry)
            {
                return(true);
            }

            if (conditions == ActionConditions.OdinEqualsZero &&
                Viking.OdinCount == 0)
            {
                return(true);
            }

            if (conditions == ActionConditions.OdinEqualsOne &&
                Viking.OdinCount == 1)
            {
                return(true);
            }

            if (conditions == ActionConditions.OdinGreaterZero &&
                Viking.OdinCount > 0)
            {
                return(true);
            }

            if (conditions == ActionConditions.OdinGreaterOne &&
                Viking.OdinCount > 1)
            {
                return(true);
            }

            if (conditions == ActionConditions.IsNotAngry &&
                Village.Emotion != Emotion.Angry)
            {
                return(true);
            }

            if (conditions == ActionConditions.AttackedEnglandWhileAngry &&
                Village.AttackedEnglandWhileAngry)
            {
                return(true);
            }

            if (conditions == ActionConditions.AttackedEnglandWhileSweatDrop &&
                Village.AttackedEnglandWhileSweatDrop)
            {
                return(true);
            }

            if (conditions == ActionConditions.IsShy &&
                Village.Emotion == Emotion.Shy)
            {
                return(true);
            }

            if (conditions == ActionConditions.IsNotSweatDrop &&
                Village.Emotion != Emotion.SweatDrop)
            {
                return(true);
            }

            if (conditions == ActionConditions.AttackedEnglandEqualsZero &&
                Viking.AttackedEnglandCount == 0)
            {
                return(true);
            }

            if (conditions == ActionConditions.AttackedEnglandEqualsOne &&
                Viking.AttackedEnglandCount == 1)
            {
                return(true);
            }

            if (conditions == ActionConditions.AttackedEnglandGreaterOne &&
                Viking.AttackedEnglandCount > 1)
            {
                return(true);
            }

            if (conditions == ActionConditions.IsHappyAndDrunk &&
                (Village.Emotion == Emotion.Happy && Viking.MeadCount > 0))
            {
                return(true);
            }

            if (conditions == ActionConditions.IsShyAndDrunk &&
                (Village.Emotion == Emotion.Shy && Viking.MeadCount > 0))
            {
                return(true);
            }

            if (conditions == ActionConditions.OdinEqualsZeroWhileNotSweat &&
                Village.Emotion != Emotion.SweatDrop &&
                Viking.OdinCount == 0)
            {
                return(true);
            }

            if (conditions == ActionConditions.OdinEqualsOneWhileNotSweat &&
                Village.Emotion != Emotion.SweatDrop &&
                Viking.OdinCount == 1)
            {
                return(true);
            }

            if (conditions == ActionConditions.OdinGreaterOneWhileNotSweat &&
                Village.Emotion != Emotion.SweatDrop &&
                Viking.OdinCount > 0)
            {
                return(true);
            }

            if (conditions == ActionConditions.OdinEqualsZeroWhileSweat &&
                Village.Emotion == Emotion.SweatDrop &&
                Viking.OdinCount == 0)
            {
                return(true);
            }

            if (conditions == ActionConditions.OdinEqualsOneWhileSweat &&
                Village.Emotion == Emotion.SweatDrop &&
                Viking.OdinCount == 1)
            {
                return(true);
            }

            if (conditions == ActionConditions.OdinGreaterOneWhileSweat &&
                Village.Emotion == Emotion.SweatDrop &&
                Viking.OdinCount > 0)
            {
                return(true);
            }

            if (conditions == ActionConditions.None)
            {
                return(true);
            }

            return(false);
        }