コード例 #1
0
        private void SetSequenceRetryCommand(AlarmInfo alarmInfo, FALibrary.Sequence.FASequence sequence)
        {
            Action<object, PropertyChangedEventArgs> confirmStatus = null;

            PropertyChangedEventHandler changedStatus =
                    delegate(object sender, PropertyChangedEventArgs e)
                    {
                        if (confirmStatus != null)
                            confirmStatus(sender, e);
                    };

            alarmInfo.ClearAlarm =
                new CommandHandler(
                    obj =>
                    {
                        if (Equipment.AlarmClearable() == false) return;

                        Equipment.TurnOffSound();
                        ClearAlarm(alarmInfo);
                        sequence.PropertyChanged -= changedStatus;
                        if (Equipment.State == Equipment.StateRun ||
                            Equipment.State == Equipment.StateRundown)
                        {
                            sequence.Resume();
                        }
                    }, false);

            if (sequence.State == FALibrary.Sequence.SequenceState.Suspended)
                alarmInfo.ClearAlarm.SetCanExecute(true);
            else
                sequence.OnSuspended +=
                    delegate(object sender, EventArgs e)
                    {
                        try
                        {
                            alarmInfo.ClearAlarm.SetCanExecute(true);
                        }
                        catch (Exception exception)
                        {
                            Manager.LogManager.Instance.WriteSystemLog(exception.ToString());
                        }
                    };
        }