protected void Page_Load(object sender, EventArgs e)
        {
            AMSEventCollection events = DataHelper.GetUpcomingEvents(0, DataHelper.DefaultPageSize, -1);

            this.firstPageData.Value = DataHelper.GetEventsListJson(0, DataHelper.DefaultPageSize, events.TotalCount, events);
            this.totalCount.Value    = events.TotalCount.ToString();
            this.pageSize.Value      = DataHelper.DefaultPageSize.ToString();
        }
        private static string QueryEvents(Func <int, int, int, AMSEventCollection> getEvents)
        {
            int pageIndex  = Res.Request.GetRequestQueryValue("pageIndex", 0);
            int totalCount = Res.Request.GetRequestQueryValue("totalCount", -1);

            AMSEventCollection events = getEvents(pageIndex, DataHelper.DefaultPageSize, totalCount);

            return(DataHelper.GetEventsListJson(pageIndex, DataHelper.DefaultPageSize, events.TotalCount, events));
        }
Beispiel #3
0
        public static AMSEventCollection GetUpcomingEvents(int pageIndex, int pageSize, int totalCount)
        {
            AMSEventDataSource dataSource = new AMSEventDataSource();

            int retTotalCount = totalCount;

            AMSEventCollection events = dataSource.Query(pageIndex * DataHelper.DefaultPageSize, DataHelper.DefaultPageSize, "EndTime > GETUTCDATE()", "StartTime", ref retTotalCount);

            events.TotalCount = retTotalCount;

            return(events);
        }
Beispiel #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            AMSEventCollection events = DataHelper.GetStartedEvents(0, DataHelper.DefaultPageSize, -1);

            this.firstPageData.Value = DataHelper.GetEventsListJson(0, DataHelper.DefaultPageSize, events.TotalCount, events);
            this.totalCount.Value    = events.TotalCount.ToString();
            this.pageSize.Value      = DataHelper.DefaultPageSize.ToString();


            //HttpCookie cookie = this.Request.Cookies.Get("login_uid");

            //if (cookie != null)
            //    this.uid.InnerText = cookie.Value;
            //OutputHeaders();
        }
Beispiel #5
0
        public void LoadNeedStartEventOutTimeFrame()
        {
            AMSEventSqlAdapter.Instance.ClearAll();

            AMSChannel channel = DataHelper.PrepareChannelData();

            AMSEvent eventData = DataHelper.PrepareEventData(channel.ID);

            eventData.StartTime = DateTime.Now.Add(TimeSpan.FromMinutes(10));

            AMSEventSqlAdapter.Instance.Update(eventData);

            AMSEventCollection eventsLoaded = AMSEventSqlAdapter.Instance.LoadNeedStartEvents(TimeSpan.FromMinutes(5));

            Assert.AreEqual(0, eventsLoaded.Count);
        }
Beispiel #6
0
        public void LoadNeedStopEventInTimeFrame()
        {
            AMSEventSqlAdapter.Instance.ClearAll();

            AMSChannel channel = DataHelper.PrepareChannelData();

            AMSEvent eventData = DataHelper.PrepareEventData(channel.ID);

            eventData.State   = AMSEventState.Running;
            eventData.EndTime = DateTime.UtcNow.Add(-TimeSpan.FromMinutes(10));

            AMSEventSqlAdapter.Instance.Update(eventData);

            AMSEventCollection eventsLoaded = AMSEventSqlAdapter.Instance.LoadNeedStopEvents();

            Assert.IsTrue(eventsLoaded.Count > 0);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            AMSEventCollection upcomingEvents = DataHelper.GetUpcomingEvents(0, DataHelper.MaxPageSize, -1);

            upcomingEvents.TotalCount = -1;

            AMSEventCollection startedEvents = DataHelper.GetStartedEvents(0, DataHelper.DefaultPageSize, -1);

            this.firstPageData.Value = DataHelper.GetEventsListJson(0, DataHelper.DefaultPageSize, startedEvents.TotalCount,
                                                                    new Dictionary <string, IEnumerable <AMSEvent> >()
            {
                { "upcomingEvents", upcomingEvents },
                { "startedEvents", startedEvents }
            });

            this.totalCount.Value = startedEvents.TotalCount.ToString();
            this.pageSize.Value   = DataHelper.DefaultPageSize.ToString();
        }
        private static string QueryEvents(Func <int, int, int, Dictionary <string, IEnumerable <AMSEvent> > > getEvents)
        {
            int pageIndex  = Res.Request.GetRequestQueryValue("pageIndex", 0);
            int totalCount = Res.Request.GetRequestQueryValue("totalCount", -1);

            Dictionary <string, IEnumerable <AMSEvent> > eventsDict = getEvents(pageIndex, DataHelper.DefaultPageSize, totalCount);

            foreach (KeyValuePair <string, IEnumerable <AMSEvent> > kp in eventsDict)
            {
                AMSEventCollection events = kp.Value as AMSEventCollection;

                if (events != null && events.TotalCount >= 0)
                {
                    totalCount = events.TotalCount;
                }
            }

            return(DataHelper.GetEventsListJson(pageIndex, DataHelper.DefaultPageSize, totalCount, eventsDict));
        }
Beispiel #9
0
        /// <summary>
        /// 停止需要停止的任务
        /// </summary>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public static void StopEventsInTimeFrame(CancellationToken cancellationToken)
        {
            AMSEventCollection events = AMSEventSqlAdapter.Instance.LoadNeedStopEvents();

            AMSQueueItemCollection messages = new AMSQueueItemCollection();

            foreach (AMSEvent eventData in events)
            {
                if (cancellationToken.IsCancellationRequested)
                {
                    break;
                }

                if (LockHelper.IsLockAvailable(eventData))
                {
                    messages.Add(eventData.ToQueueMessage(AMSQueueItemType.StopEvent));
                    TraceHelper.AMSTaskTraceSource.TraceEvent(TraceEventType.Verbose, 60012, "Add stop new event {0} to queue.", eventData.ID);
                }
            }

            GetQueue().AddMessages(string.Empty, messages.ToArray());
        }
Beispiel #10
0
        /// <summary>
        /// 检查需要启动的事件
        /// </summary>
        /// <returns></returns>
        public static void StartEventsInTimeFrame(CancellationToken cancellationToken)
        {
            AMSWorkerSettings  settings = AMSWorkerSettings.GetConfig();
            AMSEventCollection events   = AMSEventSqlAdapter.Instance.LoadNeedStartEvents(settings.Durations.GetDuration("createChannelWarmup", TimeSpan.FromMinutes(20)));

            AMSQueueItemCollection messages = new AMSQueueItemCollection();

            foreach (AMSEvent eventData in events)
            {
                if (cancellationToken.IsCancellationRequested)
                {
                    break;
                }

                if (LockHelper.IsLockAvailable(eventData))
                {
                    messages.Add(eventData.ToQueueMessage(AMSQueueItemType.StartEvent));

                    TraceHelper.AMSTaskTraceSource.TraceEvent(TraceEventType.Verbose, 60011, "Add start new event {0} to queue.", eventData.ID);
                }
            }

            GetQueue().AddMessages(string.Empty, messages.ToArray());
        }
Beispiel #11
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "application/json";

            string result = string.Empty;

            try
            {
                OperationType opType = Res.Request.GetRequestQueryValue("opType", OperationType.None);

                switch (opType)
                {
                case OperationType.AllEvents:
                    result = QueryEvents((pageIndex, pageSize, totalCount) => DataHelper.GetStartedEvents(pageIndex, pageSize, totalCount));
                    break;

                case OperationType.UpcomingEvents:
                    result = QueryEvents((pageIndex, pageSize, totalCount) => DataHelper.GetUpcomingEvents(pageIndex, pageSize, totalCount));
                    break;

                case OperationType.MergedEvents:
                    result = QueryEvents((pageIndex, pageSize, totalCount) =>
                    {
                        AMSEventCollection upcomingEvents = DataHelper.GetUpcomingEvents(0, DataHelper.MaxPageSize, -1);
                        upcomingEvents.TotalCount         = -1;

                        AMSEventCollection startedEvents = DataHelper.GetStartedEvents(pageIndex, pageSize, totalCount);

                        return(new Dictionary <string, IEnumerable <AMSEvent> >()
                        {
                            { "upcomingEvents", upcomingEvents },
                            { "startedEvents", startedEvents }
                        });
                    }
                                         );

                    break;

                case OperationType.SingleEvent:
                    string eventID   = Res.Request.GetRequestQueryString("id", string.Empty);
                    string channelID = Res.Request.GetRequestQueryString("channelID", string.Empty);

                    AMSEvent eventData = DataHelper.GetEventByID(eventID, channelID);

                    if (eventData != null)
                    {
                        AMSChannel channel = AMSChannelSqlAdapter.Instance.LoadByID(eventData.ChannelID);
                        result = DataHelper.GetSingleEventJson(channel, eventData, WebHelper.GetVideoAddressType());
                    }
                    break;
                }
            }
            catch (System.Exception ex)
            {
                result = DataHelper.GetExceptionJson(ex);
            }
            finally
            {
                context.Response.Write(result);
                context.Response.End();
            }
        }