コード例 #1
0
        // GET api/nextsession
        public Session Get()
        {
            var retryStrategy = new Incremental(5, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2));
            var retryPolicy   = new RetryPolicy <SqlAzureTransientErrorDetectionStrategy>(retryStrategy);

            Session nextSession = new Session();

            using (VidPackEntities db = new VidPackEntities())
            {
                retryPolicy.ExecuteAction(() =>
                {
                    db.Database.Connection.Open();
                });

                ExistingSession dbSession = retryPolicy.ExecuteAction <ExistingSession>(() =>
                                                                                        db.ExistingSession.Where(item => item.IsNextSession == 1).FirstOrDefault()
                                                                                        );

                if (dbSession != null)
                {
                    nextSession = new VidPackModel.Session()
                    {
                        SessionDate         = dbSession.SessionDate.ToString(),
                        SessionDescription  = dbSession.SessionDescription,
                        SessionSubTitle     = dbSession.SessionSubTitle,
                        SessionThumbnailUrl = String.Format("{0}{1}", ThumbnailStorageUrl, dbSession.SessionThumbnailUri),
                        SessionTitle        = dbSession.SessionSubTitle,
                        SessionVideoUrl     = dbSession.SessionVideoUri == null ? "" : dbSession.SessionVideoUri,
                        Speaker             = dbSession.Speaker
                    }
                }
                ;
            }
            return(nextSession);
        }
コード例 #2
0
        // GET api/notification
        public IEnumerable <NotificationInfo> Get()
        {
            var retryStrategy = new Incremental(5, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2));
            var retryPolicy   = new RetryPolicy <SqlAzureTransientErrorDetectionStrategy>(retryStrategy);

            List <NotificationInfo> notifications = new List <NotificationInfo>();

            using (VidPackEntities db = new VidPackEntities())
            {
                retryPolicy.ExecuteAction(() =>
                {
                    db.Database.Connection.Open();
                });

                notifications = retryPolicy.ExecuteAction <List <NotificationInfo> >(() =>
                                                                                     db.Notification.Select(item => new NotificationInfo()
                {
                    NotificationTag = item.NotificationTag,
                }).ToList <NotificationInfo>()
                                                                                     );
            }
            return(notifications);
        }
コード例 #3
0
        // GET api/session
        public IEnumerable <Session> Get(ODataQueryOptions <Session> queryOptions)
        {
            var retryStrategy = new Incremental(5, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2));
            var retryPolicy   = new RetryPolicy <SqlAzureTransientErrorDetectionStrategy>(retryStrategy);

            List <Session> session = new List <Session>();

            try
            {
                using (VidPackEntities db = new VidPackEntities())
                {
                    retryPolicy.ExecuteAction(() =>
                    {
                        db.Database.Connection.Open();
                    });


                    var listSession = retryPolicy.ExecuteAction(() =>
                                                                db.ExistingSession.Include("DownloadItem").Select(item => new
                    {
                        SessionDate         = item.SessionDate,
                        SessionDescription  = item.SessionDescription,
                        SessionSubTitle     = item.SessionSubTitle,
                        SessionThumbnailUrl = item.SessionThumbnailUri,
                        SessionTitle        = item.SessionSubTitle,
                        SessionVideoUrl     = item.SessionVideoUri == null ? "" : item.SessionVideoUri,
                        Speaker             = item.Speaker,
                        isActual            = item.IsActualSession,
                        DownloadItem        = item.DownloadItem.Select(_ => new
                        {
                            Caption     = _.Caption,
                            Description = _.Description,
                            Url         = _.Url,
                        })
                    }).ToList()
                                                                );

                    //ToString() / String.Format() is not know within projection
                    session = listSession.Select(item => new Session()
                    {
                        SessionDate         = Convert.ToString(item.SessionDate),
                        SessionDescription  = item.SessionDescription,
                        SessionSubTitle     = item.SessionSubTitle,
                        SessionThumbnailUrl = String.Format("{0}{1}", ThumbnailStorageUrl, item.SessionThumbnailUrl),
                        SessionTitle        = item.SessionSubTitle,
                        SessionVideoUrl     = item.SessionVideoUrl,
                        Speaker             = item.Speaker,
                        SessionDownloadItem = item.DownloadItem.Select(_ => new DownloadItemInfo()
                        {
                            Caption     = _.Caption,
                            Description = _.Description,
                            Url         = _.Url,
                        }).ToList <DownloadItemInfo>(),
                    }).ToList <Session>();

                    return(session);
                }
            }
            catch (Exception ex)
            {
                //TODO: Implement Error Handling
                return(new List <Session>());
            }
        }