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); }
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); }
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); }
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); }
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); }); }