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