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