Esempio n. 1
0
        } // LaunchRecorderProgram

        private IDictionary <string, string> CreateParameters(string filename, RecordTask task)
        {
            var paramKeys = new string[]
            {
                "OutputFile",
                "Channel.Url",
                "Channel.Name",
                "Channel.Description",
                "Description.Name",
                "Description.Description",
                "Duration.TotalSeconds",
            };
            var paramValues = new string[]
            {
                filename,
                task.Channel.ChannelUrl,
                task.Channel.Name,
                task.Channel.Description,
                task.Description.Name,
                task.Description.Description,
                ((int)TotalTime.TotalSeconds).ToString(CultureInfo.InvariantCulture),
            };

            return(ArgumentsManager.CreateParameters(paramKeys, paramValues, false));
        } // CreateParameters
Esempio n. 2
0
        public void GetChildsTest()
        {
            var manager = new ArgumentsManager();
            var oper    = new ScalarPropositionalOperator('t', manager);

            Assert.Null(oper.GetChilds());
        }
Esempio n. 3
0
        } // ProxyConfiguration

        public string GetProxiedLocationUrl(string protocol, string address, ushort port)
        {
            if (!IsEnabled)
            {
                return(string.Format("{0}://@{1}:{2}", protocol, address, port));
            } // if

            var paramKeys = new string[]
            {
                "protocol",
                "protocolU",
                "multicastAddress",
                "multicastPort"
            };
            var paramValues = new string[]
            {
                protocol,
                protocol.ToUpperInvariant(),
                address,
                port.ToString()
            };
            var parameters = ArgumentsManager.CreateParameters(paramKeys, paramValues, false);

            return(ArgumentsManager.ExpandArgument(ProxyConfiguration, parameters, ParameterOpenBrace, ParameterCloseBrace, StringComparison.CurrentCultureIgnoreCase));
        } // GetProxiedLocationUrl
Esempio n. 4
0
        public void GetChildsTest()
        {
            var manager = new ArgumentsManager();
            var oper    = new ConstantMathOperator('t', manager);

            Assert.Null(oper.GetChilds());
        }
 public DisjunctiveNormalDecorator(ITruthTable table)
 {
     _data            = table;
     _argumentManager = new ArgumentsManager();
     _names           = table.GetOperator().GetArguments();
     StartCalculating();
 }
Esempio n. 6
0
        public void ResultNullTest()
        {
            var manager = new ArgumentsManager();
            var oper    = new ScalarPropositionalOperator('t', manager);

            Assert.Throws <ScalarInvalidValue>(() => oper.Result());
        }
Esempio n. 7
0
        public void ResultTrueTest()
        {
            var manager = new ArgumentsManager();
            var oper    = new ConstantMathOperator('t', manager);

            oper.SetValue(true);
            Assert.True(oper.Result());
        }
Esempio n. 8
0
        public void ResultTrueTest()
        {
            var manager = new ArgumentsManager();
            var oper    = new ScalarPropositionalOperator('t', manager);

            oper.SetValue(true);
            Assert.True(oper.Result());
        }
Esempio n. 9
0
        public void ResultInvalidSameTest()
        {
            var manager = new ArgumentsManager();
            var one     = new ScalarPropositionalOperator('o', manager);

            one.SetValue(true);

            var zero = new ScalarPropositionalOperator('z', manager);

            zero.SetValue(false);

            var opr = new IfThenPropositionalOperator(manager);

            IAsciiBasePropositionalOperator[] arguments = { one, zero };
            opr.Instantiate(arguments);
            Assert.False(opr.Result());
        }
Esempio n. 10
0
        public void ResultInvalidSameTest()
        {
            var manager = new ArgumentsManager();
            var one     = new ConstantMathOperator('o', manager);

            one.SetValue(true);

            var zero = new ConstantMathOperator('z', manager);

            zero.SetValue(false);

            var opr = new MinMathOperator(manager);

            IBaseMathOperator[] arguments = { one, zero };
            opr.Instantiate(arguments);
            Assert.False(opr.Result());
        }
Esempio n. 11
0
        } // SetAdditionalData

        private void SetAction(TaskDefinition definition, RecordTask record, string dbFile, string logFolder)
        {
            var arguments = new[]
            {
                "/Action:Record",
                $"/TaskId:{record.TaskId}",
                $"/Database:{dbFile}",
                $"/LogFolder:{logFolder}"
            };

            var action = new ExecAction()
            {
                Path             = _recorderLauncherPath,
                Arguments        = ArgumentsManager.JoinArguments(arguments),
                WorkingDirectory = record.Action.SaveLocationPath,
            };

            definition.Actions.Add(action);
        } // SetAction
Esempio n. 12
0
        } // ShowTvChannel

        public static void Launch(TvPlayer player, UiBroadcastService service, bool throughShortcut)
        {
            if (!File.Exists(player.Path))
            {
                var ex = new FileNotFoundException();
                throw new FileNotFoundException(ex.Message + "\r\n" + player.Path);
            } // if

            if (LaunchParamKeys == null)
            {
                LaunchParamKeys = new string[]
                {
                    "Channel.Url",
                    "Channel.Name",
                    "Channel.Description",
                    "Channel.Icon.Path",
                };
            } // if

            var paramValues = new string[]
            {
                service.LocationUrl,
                service.DisplayName,
                service.DisplayDescription,
                service.Logo.GetLogoIconPath(),
            };

            var parameters      = ArgumentsManager.CreateParameters(LaunchParamKeys, paramValues, false);
            var arguments       = ArgumentsManager.ExpandArguments(player.Arguments, parameters, TvPlayer.ParameterOpenBrace, TvPlayer.ParameterCloseBrace, StringComparison.CurrentCultureIgnoreCase);
            var launchArguments = ArgumentsManager.JoinArguments(arguments);

            if (throughShortcut)
            {
                LaunchShortcut(player, service, launchArguments);
            }
            else
            {
                LaunchProcess(player, launchArguments);
            } // if-else
        }     // Launch
 public ExtensionalQuantifierOperator(ArgumentsManager manager) : base(manager)
 {
 }
Esempio n. 14
0
 public NotPropositionalOperator(ArgumentsManager manager) : base(manager)
 {
 }
Esempio n. 15
0
 public AbstractDubblePropositionalOperator(ArgumentsManager manager) : base(manager)
 {
 }
 public AbstractBasePropositionalOperator(ArgumentsManager manager)
 {
     _argumentManager = manager;
 }
Esempio n. 17
0
 public void ScalarOperatorTest()
 {
     var manager = new ArgumentsManager();
     var oper    = new ConstantMathOperator('t', manager);
 }
Esempio n. 18
0
 public NotifyDecorator(IAsciiBasePropositionalOperator oper, ArgumentsManager manager)
 {
     _manager = manager;
     _propositionalOperator = Process(oper);
 }
Esempio n. 19
0
        } // DisplayTaskData

        private Program.Result LaunchRecorderProgram(RecordTask task)
        {
            var scheduledStartTime = task.Schedule.GetStartDateTime();
            var scheduledTotalTime = task.Schedule.SafetyMarginTimeSpan + task.Duration.GetDuration(task.Schedule) + task.Duration.SafetyMarginTimeSpan;
            var now = DateTime.Now;
            // var scheduledDateTime = new DateTime(scheduledStartTime.Year, scheduledStartTime.Month, scheduledStartTime.Day, scheduledStartTime.Hour, scheduledStartTime.Minute, scheduledStartTime.Second);
            // TODO: determine most probable launch date; we need to account for HUGE delays between scheduled run time and real run time
            var scheduledDateTime = new DateTime(now.Year, now.Month, now.Day, scheduledStartTime.Hour, scheduledStartTime.Minute, scheduledStartTime.Second);
            var gap = now - scheduledDateTime;

            if (gap.TotalSeconds < 1)
            {
                gap = TimeSpan.Zero;
            }
            TotalTime = scheduledTotalTime - gap;

            Logger.Log(Logger.Level.Verbose, Properties.Texts.LogVerboseScheduledStartTimeGap,
                       scheduledStartTime, scheduledTotalTime, gap, TotalTime);
            DisplayTaskData(task, TotalTime);

            if (TotalTime.TotalSeconds < 1)
            {
                Logger.Log(Logger.Level.Error, Properties.Texts.LogErrorTooLate);
                return(Program.Result.TooLate);
            } // if

            if (gap.TotalSeconds < 30)
            {
                gap = TimeSpan.Zero;
            }

            if (task.Schedule.Kind != RecordScheduleKind.RightNow)
            {
                if (gap.TotalSeconds > task.Schedule.SafetyMarginTimeSpan.TotalSeconds)
                {
                    RecordingLate = true;
                    Logger.Log(Logger.Level.Warning, Properties.Texts.LogWarningRecordingLate, (int)task.Schedule.SafetyMarginTimeSpan.TotalMinutes);
                    Console.WriteLine(Properties.Texts.DisplayWarningRecordingLate, (int)task.Schedule.SafetyMarginTimeSpan.TotalMinutes);
                }
                else if (gap.TotalSeconds > 0)
                {
                    Logger.Log(Logger.Level.Warning, Properties.Texts.LogWarningBehindSchedule, gap);
                    Console.WriteLine(Properties.Texts.DisplayWarningBehindSchedule, gap);
                } // if-else
            }     // if-else

            var date = string.Format(Properties.Texts.FormatRecordFileDate,
                                     now.Year, now.Month, now.Day,
                                     scheduledStartTime.Hour, scheduledStartTime.Minute, scheduledStartTime.Second);

            var filename = string.Format(Properties.Texts.FormatRecordFileName,
                                         task.Action.SaveLocationPath,
                                         task.Action.Filename,
                                         date,
                                         RecordingLate ? Properties.Texts.FormatRecordFileDelayed : null,
                                         task.Action.FileExtension);

            var parameters = CreateParameters(filename, task);

            LogParameters(parameters);
            var arguments       = ArgumentsManager.ExpandArguments(task.Action.Recorder.Arguments, parameters, Properties.Resources.ArgumentsOpenBrace, Properties.Resources.ArgumentsCloseBrace, StringComparison.CurrentCultureIgnoreCase);
            var joinedArguments = ArgumentsManager.JoinArguments(arguments);

            LogArguments(task.Action.Recorder.Path, task.Action.Recorder.Arguments, joinedArguments);

            try
            {
                var info = new ProcessStartInfo()
                {
                    FileName        = task.Action.Recorder.Path,
                    Arguments       = joinedArguments,
                    ErrorDialog     = false,
                    UseShellExecute = false,
                };

                Logger.Log(Logger.Level.Info, Properties.Texts.LogInfoLaunchingRecorder);
                Console.Write(Properties.Texts.DisplayLaunchingRecorder);
                using (var process = Process.Start(info))
                {
                    Logger.Log(Logger.Level.Info, Properties.Texts.LogInfoLaunchingRecorderOk, process.Id);
                    Console.WriteLine(Properties.Texts.DisplayLaunchingRecorderOk, process.Id);

                    TimerTickCount = 0;
                    StartTime      = DateTime.UtcNow;
                    var timer = new System.Threading.Timer(OnTimerTick, null, 0, 60000);

                    Logger.Log(Logger.Level.Verbose, Properties.Texts.LogVerboseWaitForExit);
                    process.WaitForExit();

                    timer.Dispose();
                    Logger.Log(Logger.Level.Info, Properties.Texts.LogInfoRecorderExited, process.ExitCode);

                    Console.WriteLine();
                    Console.WriteLine();
                    Console.WriteLine(Properties.Texts.DisplayRecorderFinished);

                    if (process.ExitCode != 0)
                    {
                        return(Program.Result.ExecFailure);
                    } // if
                }     // using
            }
            catch (Exception ex)
            {
                Logger.Exception(ex, Properties.Texts.LogExceptionLaunchingRecorder);
                Program.DisplayException(ex);

                return(Program.Result.ExecProblem);
            } // try-catch

            return(Program.Result.Ok);
        } // LaunchRecorderProgram
Esempio n. 20
0
 public void ScalarOperatorTest()
 {
     var manager = new ArgumentsManager();
     var oper    = new ScalarPropositionalOperator('t', manager);
 }
 protected AbstractQuantifierOperator(ArgumentsManager manager) : base(manager)
 {
 }
Esempio n. 22
0
 public ScalarPropositionalOperator(char name, ArgumentsManager manager) : base(manager)
 {
     _name = name;
 }
 public PredicateOperator(ArgumentsManager manager) : base(manager)
 {
 }
 public AbstractConstantPropositionalOperator(ArgumentsManager manager) : base(manager)
 {
 }
 public UniversalQuantifierOperator(ArgumentsManager manager) : base(manager)
 {
 }