Exemplo n.º 1
0
        public void Suspend_Resume_WhilePaused_Succeeds(string clipTitle)
        {
            RunPlayerTest(clipTitle, async context =>
            {
                var suspendOperation = new SuspendOperation();
                var resumeOperation  = new ResumeOperation();

                suspendOperation.SetPreconditions(
                    // Wait for playing state & running clock
                    () => Task.WhenAll(WaitForState.Observe(context.Service, PlayerState.Playing, context.Token, context.Timeout),
                                       RunningClockTask.Observe(context.Service, context.Token, context.Timeout)),

                    // Let it run
                    () => Task.Delay(SuspendOperation.GetRandomTimeSpan(TimeSpan.FromSeconds(2)), context.Token),

                    // Pause & wait for confirmation
                    () =>
                {
                    context.Service.Pause();
                    return(WaitForState.Observe(context.Service, PlayerState.Paused, context.Token, context.Timeout));
                });

                // Suspend
                suspendOperation.Prepare(context);
                await suspendOperation.Execute(context);

                // Resume
                await resumeOperation.Execute(context);
            }, false);
        }
Exemplo n.º 2
0
        public void Suspend_Resume_WhileSeeking_Succeeds(string clipTitle)
        {
            RunPlayerTest(clipTitle, async context =>
            {
                var suspendOperation = new SuspendOperation();
                var resumeOperation  = new ResumeOperation();

                suspendOperation.SetPreconditions(
                    // Wait for playing state & running clock
                    () => Task.WhenAll(WaitForState.Observe(context.Service, PlayerState.Playing, context.Token, context.Timeout),
                                       RunningClockTask.Observe(context.Service, context.Token, context.Timeout)),

                    // Let it run
                    () => Task.Delay(SuspendOperation.GetRandomTimeSpan(TimeSpan.FromSeconds(2)), context.Token),

                    // Execute seek.
                    () =>
                {
                    var randomSeekPos = SuspendOperation.GetRandomTimeSpan(context.Service.Duration - TimeSpan.FromSeconds(10));
                    _ = context.Service.SeekTo(randomSeekPos);
                    return(Task.CompletedTask);
                });

                // Suspend
                suspendOperation.Prepare(context);
                await suspendOperation.Execute(context);

                // Resume
                await resumeOperation.Execute(context);
            }, false);
        }
Exemplo n.º 3
0
        public IEnumerable <SuspendOperation> QuerySuspendOption(SuspendOperationQueryParameter parameter, Pagination pagination)
        {
            if (parameter == null)
            {
                throw new ArgumentException("parameter");
            }
            if (pagination == null)
            {
                throw new ArgumentException("pagination");
            }
            var result = new List <SuspendOperation>();

            ClearParameters();
            if (parameter.Company.HasValue)
            {
                AddParameter("@iCompany", parameter.Company);
            }
            else
            {
                AddParameter("@iCompany", DBNull.Value);
            }
            AddParameter("@iStartDate", parameter.OperateDate.Lower);
            AddParameter("@iEndDate", parameter.OperateDate.Upper);
            AddParameter("@iPageIndex", pagination.PageIndex);
            AddParameter("@iPageSize", pagination.PageSize);
            AddParameter("@iGetCount", pagination.GetRowCount);
            var totalCount = AddParameter("@oTotalCount");

            totalCount.DbType    = System.Data.DbType.Int32;
            totalCount.Direction = System.Data.ParameterDirection.Output;
            using (var reader = ExecuteReader("P_QuerySuspendOptions", System.Data.CommandType.StoredProcedure))
            {
                while (reader.Read())
                {
                    var item = new SuspendOperation
                    {
                        Id               = reader.GetGuid(0),
                        Owner            = reader.GetGuid(1),
                        Airlines         = reader.GetString(2),
                        Reason           = reader.GetString(3),
                        OperateTime      = reader.GetDateTime(4),
                        OperateType      = (PolicySuspendOperationType)reader.GetByte(5),
                        Operator         = reader.GetString(6),
                        IP               = reader.GetString(7),
                        OperatorRoleType = (PublishRole)reader.GetByte(8),
                        CompanyId        = reader.GetValue(9) == DBNull.Value ? Guid.Empty : reader.GetGuid(9),
                        CompanyName      = reader.GetString(10)
                    };
                    result.Add(item);
                }
            }
            if (pagination.GetRowCount)
            {
                pagination.RowCount = (int)totalCount.Value;
            }

            return(result);
        }
Exemplo n.º 4
0
        public void Suspend_Resume_WhileStartingPlayback_Succeeds(string clipTitle)
        {
            RunPlayerTest(clipTitle, async context =>
            {
                var suspendOperation = new SuspendOperation();
                var resumeOperation  = new ResumeOperation();

                // Suspend
                suspendOperation.Prepare(context);
                await suspendOperation.Execute(context);

                // Resume
                await resumeOperation.Execute(context);
            }, false);
        }
Exemplo n.º 5
0
        public void Suspend_Resume_WhileStartingPlaybackAndSeeking_Succeeds(string clipTitle)
        {
            RunPlayerTest(clipTitle, async context =>
            {
                var suspendOperation = new SuspendOperation();
                var resumeOperation  = new ResumeOperation();

                suspendOperation.SetPreconditions(
                    () =>
                {
                    var randomSeekPos = SuspendOperation.GetRandomTimeSpan(context.Service.Duration - TimeSpan.FromSeconds(10));
                    _ = context.Service.SeekTo(randomSeekPos);
                    return(Task.CompletedTask);
                });

                // Suspend
                suspendOperation.Prepare(context);
                await suspendOperation.Execute(context);

                // Resume
                await resumeOperation.Execute(context);
            });
        }